2014-12-18 68 views
0

例如:有一個本地和遠程回購有兩個文件:混帳:從遠程拉,但保持本地提交

1.txt 
2.txt 

開發者#1的編輯1.txt本地和提交更改沒有他們推到遠程回購。

之後,開發人員#2發送帶編輯的2.txt的拉取請求,並將其合併到主遠程回購中。

我的問題是:開發人員#1如何從遠程回購拉2.txt,並保持更改爲1.txt

當我嘗試這樣做,額外提交之後1.txt編輯添加的,所以它看起來是這樣的:

  • 14:00 2.txt從開發商提交#2
  • 15:00 1.txt從開發商承諾#1
  • 16:00 Merge branch "master" of https://github...2.txt再次提交)

謝謝。

+0

有什麼問題?您已經對這兩個文件進行了更改。額外的提交將開發人員1和開發人員2的工作合併在一起。 – Eevee

回答

2

您應該使用

git pull --rebase 

你犯下另一個這樣後將被重播,所以它的SHA哈希碼將會改變,但除此之外,它會是相同的。這樣你可以避免額外的「合併提交」。

+0

此外,您可以在'.git/config'文件中將'--rebase'而不是'--merge'作爲分支的默認行爲。而且,您還可以通過全局設置來設置新創建/拉出的分支的默認設置*。 – Kaz

+0

我很謹慎地向任何不熟悉它如何工作的人推薦'--rebase' - 它很容易被衝突弄糊塗,搞砸你的歷史(或者更糟糕的是,你的分支)。 – Eevee

+0

我想在這種情況下,合併也會發生同樣的情況。但是你是對的,它不是100%安全的操作。 –