我和朋友正在GitHub上開展一個項目。合併代碼的問題
他最近將代碼推送到我沒有的回購中,並且我已經編寫了一些代碼,但未推送。意思是說,GitHub上的回購有他的提交,但我的本地回購沒有提交,所以這是一個落後。但是我已經對自己的本地回購做了一些改變,我不想失去。
現在我卡住了,我不能推動沒有刪除他的代碼,我不能拉動沒有刪除我的更改。那麼如何保持這兩個變化?我聽說過合併,但我無法弄清楚如何得到他的承諾並將其與我的合併。
我該如何保持我和他的變化?
我和朋友正在GitHub上開展一個項目。合併代碼的問題
他最近將代碼推送到我沒有的回購中,並且我已經編寫了一些代碼,但未推送。意思是說,GitHub上的回購有他的提交,但我的本地回購沒有提交,所以這是一個落後。但是我已經對自己的本地回購做了一些改變,我不想失去。
現在我卡住了,我不能推動沒有刪除他的代碼,我不能拉動沒有刪除我的更改。那麼如何保持這兩個變化?我聽說過合併,但我無法弄清楚如何得到他的承諾並將其與我的合併。
我該如何保持我和他的變化?
您將更改提交到本地回購。然後你執行
git pull
將合併與你的他的更改,或
git pull --rebase
將改寫對他的變化頂部更改,因爲如果你有他們之後寫入。
當然,無論您選擇何種策略,都有可能發生衝突,您必須解決。按照說明操作。
這是任何Git書籍所涵蓋的,並且有幾個免費在線提供。看看他們。
您可以拉動而不刪除您的更改。什麼git pull
做幕後等同於:
git fetch remote
git merge remote/branch
因此,你的改變將是安全和您的同事的變化將包括在內。創建新合併提交以合併分散的工作副本。
在您未做任何更改的情況下git
通常會執行快進,這會將您的狀態設置爲其他狀態。 git
只有在安全的情況下才能做到這一點!
如果你沒有犯任何變更:要麼把它們提交或閱讀了有關git stash
,git
不會讓你pull
,直到它是安全的這樣做!
半相關:['git pull'和'git fetch'之間的區別是什麼?](http://stackoverflow.com/questions/292357/whats-the-difference-between-git-pull-and-混帳提取) –