2014-03-02 50 views
0

我和朋友正在GitHub上開展一個項目。合併代碼的問題

他最近將代碼推送到我沒有的回購中,並且我已經編寫了一些代碼,但未推送。意思是說,GitHub上的回購有他的提交,但我的本地回購沒有提交,所以這是一個落後。但是我已經對自己的本地回購做了一些改變,我不想失去。

現在我卡住了,我不能推動沒有刪除他的代碼,我不能拉動沒有刪除我的更改。那麼如何保持這兩個變化?我聽說過合併,但我無法弄清楚如何得到他的承諾並將其與我的合併。

我該如何保持我和他的變化?

+1

半相關:['git pull'和'git fetch'之間的區別是什麼?](http://stackoverflow.com/questions/292357/whats-the-difference-between-git-pull-and-混帳提取) –

回答

1

您將更改提交到本地回購。然後你執行

git pull 

將合併與你的他的更改,或

git pull --rebase 

將改寫對他的變化頂部更改,因爲如果你有他們之後寫入。

當然,無論您選擇何種策略,都有可能發生衝突,您必須解決。按照說明操作。

這是任何Git書籍所涵蓋的,並且有幾個免費在線提供。看看他們。

1

可以拉動而不刪除您的更改。什麼git pull做幕後等同於:

git fetch remote 
git merge remote/branch 

因此,你的改變將是安全和您的同事的變化將包括在內。創建新合併提交以合併分散的工作副本。

在您未做任何更改的情況下git通常會執行快進,這會將您的狀態設置爲其他狀態。 git只有在安全的情況下才能做到這一點!


如果你沒有犯任何變更:要麼把它們提交或閱讀了有關git stashgit不會讓你pull,直到它是安全的這樣做!