2014-11-15 47 views
0

我正在開發一個項目並使用Gi​​t進行版本控制。我在我的develop分支上的計算機A上做了一些工作,並將其推送到我的遠程存儲庫,該存儲庫設置爲遠程分支origin/develop。然後,我在計算機B上的develop分支上做了很多工作,但忘了提取最後一次從計算機A提交的提交。當我最終從計算機B上的develop分支獲取最新的圖時,圖像會像這樣分裂。還原或重置Git中的遠程提交?

* Computer B Commit 3 [develop] 
| 
* Computer B Commit 2 
| 
* Computer B Commit 1 
| 
| * Computer A Commit [remotes/origin/develop] 
|/
* 

在這一點上我不關心我在計算機A上所做的工作我已經做了,最多在從計算機B的提交完成的工作然而,如果我嘗試運行git push origin Git是試圖讓我合併這兩個分支。我不想合併任何東西。我真的只想讓remotes/origin/develop指向最新的本地develop分支Computer B Commit 3

我是唯一一個在這個項目上工作的人,所以沒有機會任何人從計算機A上拉最後一次提交。這聽起來像我可以通過使用git push -f origin來強制推送,但我正在閱讀的一些文章現在說如果其他人已經拉下來,這會很糟糕。

解決這個問題的正確方法是什麼?

回答

0

既然你是該項目的唯一一個,從計算機B:

git push -f origin develop 

這將覆蓋所有從歷史計算機A

這只是取決於你有多在乎從呈交計算機A.我實際上試着在計算機B上運行git pull --rebase origin develop,它會嘗試使用A的遠程提交將您的更改自動合併到B上的提交中,如果存在衝突,您可以解決它們,然後git rebase --continue

+0

我不能這樣做嗎? git merge -s我們的起源/開發 –

+0

如果你想合併這兩個,那麼我會用rebase來編輯我的答案。 –