我有一個長期運行的本地功能分支,我週期性地壓扁並重新分配與主,以保持它在本地更新。Git rebase一個推送功能分支
完成後,我希望我的功能在主控制器上的一個壓扁的提交中。
但是,我擔心在硬件問題的情況下丟失我的工作,所以我把它推到github上的一個新功能分支作爲預防措施。由於這樣做,我不確定如何讓我的功能分支保持最新,因爲它已經被推送(我寧願不合並創建合併提交的主更改)。
我是唯一使用此功能分支的開發人員。所以我不擔心在已經推送的分支上重寫歷史記錄。推送額外的提交到我的遠程功能分支是否正常,當我完成這個功能時壓縮那個分支,然後將它重新分配給主設備?或者,因爲分支機構已經公開,git會拋出關於分支機構分歧的一些錯誤?
或者,我在想,當我的工作完成後,我可以簡單地解開遠程功能分支(這樣我的本地分支不再與遠程分支有關聯),壓縮本地功能分支中的提交,以及然後重新綁定我的功能分支在本地上的主。
我發現這篇文章似乎表明使用「強制」選項是必需的:http://stackoverflow.com/questions/8939977/git-push-rejected-after-feature-branch-rebase – nogridbag
它看起來像這樣帖子指的是功能分支 - 這是可以接受的。我會想象它等同於我的計劃B,即解開遠程分支的計劃,壓縮並重新綁定到本地,然後創建一個新分支。在功能分支上簡單使用-force似乎更容易。 – nogridbag
當你重寫遠程分支的歷史記錄時,'--force'是必要的(你知道後果)。如果你願意,你可以保留許多備份,推送到新的功能分支,而不用重寫或刪除舊分支。本地跟蹤和追蹤對壓扁和重新綁定沒有影響。本地跟蹤的目的僅僅是爲了減少打字或改進某些操作中的顯示,這非常美觀,並且不會干擾版本控制操作。 – janos