2014-05-05 47 views
1

我在我的系統中創建了一些文件,將其提交併推送到遠程存儲庫。之後,我不得不使用命令git reset HEAD~1刪除該提交。git推送錯誤:當前分支在其遠程對手之後

現在我修改了先前創建的文件並再次提交了代碼。現在,當我試圖把代碼,它failes說:

Updates were rejected because the tip of your current branch is behind its remote counterpart.Merge the remote changes (e.g. 'git pull') before pushing again.

但合併將不得不通過看什麼,我想保留/拒絕,我不想這樣做手工完成。

我試圖用--force選項,同時推動,但它也與錯誤而失敗:

To prevent you from losing history, non-fast-forward updates were rejected. 

由於沒有一個是使用代碼遠程倉庫和我只是想覆蓋偏遠repository.Is文件有辦法做到這一點。

+0

您需要簽出遠程分支並獲取更改。 因此,嘗試'git fetch''git pull',然後推送到遠程分支。 – PseftiS

+0

由於服務器已禁用非快進更新,這意味着您不應更改歷史記錄。因此,不必執行'git reset HEAD〜1',你可以在最後一次提交時執行'git revert'。 – Shahbaz

回答

0

最好使用git pull然後解決衝突。他們沒有太多的手動工作,因爲當git與<<<<<<>>>>>之間存在衝突時,git包含該部分代碼。而========之前的代碼就是你的,之後的代碼就是來自遠程倉庫。

之後,推碼。你不會得到任何錯誤。

它並不難解決衝突。

按照這種方式,你也不會失去任何提交。

0

我不知道你的問題是什麼,雖然這是你如何合併兩個提交或刪除其中之一。

不推薦重寫歷史記錄,因爲其他人已經提交了您的提交將在您的下一次推送中遇到問題。

如果您仍然想刪除最後推提交您對:

git rebase -i HEAD^^

你會看到最後兩個像提交:

pick 3df324 Add README.md 
pick 3245cf bump version 

合併兩次提交:

bump version是最後一次提交。您將pick更改爲squash然後保存並退出該文件。你會看到另一個文件打開,你必須離開你想要使用的文本。接下來去和git push -f

刪除承諾:

如果你想刪除提交乾脆刪除它並保存+退出該文件。

您可以查詢Github docummentation瞭解更多信息。