背景:我們使用github上爲我們的項目,我對我自己我們的主要倉庫的叉工作。我們使用rebase而不是merge來避免大的合併提交。git的變基長壽命(遙控)功能分支
方案:我想要的工作方式是這樣的:
- 當執行一個新的功能,創建我的叉子的主人的當地分支機構,並把我的變化出現。我和該組中的其他人進行了許多小的提交,因此幾乎總是會有多個提交影響分支上的同一個文件。
- 推動當地分支機構到我的叉子,所以我有什麼我工作的遠程副本(我不希望有,如果我的筆記本電腦去世或失去了所有的更改將丟失。我試圖在年底要做到這一點每天)。
- 如果它需要很長的時間來完成的功能,我偶爾會重訂在我的叉子的主人,以確保一直沒有改變,可以打破我的特點。這通常工作正常。
- 爲了讓分支的遠程副本保持最新,我將我的本地分支推到了rebase之後。
問題:第4步是我遇到問題的地方。我幾乎總是必須處理非快速轉發的提交併使用git push --force。
我已經看了
Git: how to maintain permanent parallel branches
How to maintain (mostly) parallel branches with only a few difference
,並沒有發現一種方法,使我的工作流程的工作。在git工作流上進行谷歌搜索通常會返回假設您都在本地分支上工作並且不在github上保留遠程副本的結果(例如http://nvie.com/posts/a-successful-git-branching-model/)。
我是比較新的Git的,所以我想知道如果我在這裏失去了一些東西。我希望能夠在沒有--force的情況下執行第4步。另一個工作流程仍然允許我使用rebase而不是merge,並保留我的本地分支的遠程副本,這也是非常有用的。
您可以通過使用'--force-with-lease'來避免競爭條件,如果上游比您的本地更新,則會失敗。 – mLuby 2017-08-22 22:07:03