這實在是對Elazar Leibovich's second option評論這對於評論來說已經變得非常有用了:)在提交圖形術語中,我基本上和選項2一樣,但是維護一個本地分支,它有我的變化而不是留在主分區上。換句話說,通常情況是這樣的:
A --- B --- C (master,origin/master) --- D --- E (local)
...如果我想從主更新,我會做:
git checkout local
git fetch origin
git rebase origin/master
...去:
A --- B --- C (master) --- F --- G (origin/master) --- D' --- E' (local)
如果我加入了更多的提交到local
,我會做一個git rebase -i origin/master
這樣我就可以確保我的D
和E
仍然是歷史上最近的。
的這種過度埃拉扎爾Leibovich的選項2的好處就是,它減少了你要與git push
或git push master
小心把你的本地更改master
的風險,因爲你的本地修改絕不會在master
分支應該沒有分支稱爲local
遠程。 (如果有,選擇一個不同的名稱,顯然:))
當你必須要推回master
東西,例如提交H
和I
這裏:
A -- B -- C (master) -- F -- G (origin/master) -- H -- I -- D'' -- E' (local)
...你會這樣做:
git checkout master
git merge I
git push origin master
是的,這是超級容易與mercurial補丁隊列! – krupan 2011-04-01 16:01:34
等待,請在修補程序打開時顯示如何提交新修訂,並避免提交不需要的修補程序。 – 2011-04-03 10:23:20
@Elazar:我更新了我的答案,以顯示如何在不提交「不需要」的補丁的情況下落實更改。 – 2011-04-06 13:32:43