![](/img/trans.png)
[英]How do I update my branch with master branch and override any changes I made on my branch?
[英]How do I update a remote branch with changes from master
我已經對重新建立和合並我們的遠程分支機構做了很多研究/實踐,但是我找不到能夠最終不會導致重復提交或遠程分支機構的非快速推進的解決方案。 這就是我想要做的。
我們有兩個分支, master
(跟蹤origin/master
)和hebe
(跟蹤origin/hebe
)。 一個月前, hebe
適當地脫離了master
。 每天都有兩個開發商在這兩個分支上工作。
master
仍將繼續維護,並在hebe
分支中反映/更新了一些常見代碼中的錯誤修復。 但是, hebe
任何新代碼都不應該成為master
我試過了:
git rebase master hebe
從日志來看,這正是我們想要的,但是hebe
提交位於最新的master
之上,但是當我嘗試推動hebe
它會發出警告,指出origin/hebe
不能快速推進。
還是我們從錯誤的方向進行處理,而子模塊將是合適的解決方案?
您僅應在非常非常罕見的情況下重新設置分支,因為重寫了歷史記錄並因此更改了提交的密碼,分支已經被推送並與他人共享。 這導致您提到重復的提交,因為不同的sha意味着git的不同提交。
在您的情況下,最好將母版與
$ git checkout hebe
$ git merge master
$ git push origin hebe
這樣,您就可以將所有更改從大師合並到hebe
但是什么也回到不了大師,所有陰影都保持不變。 合並將創建一個所謂的合並提交(如果無法進行快速合並)。
因為它是如此重要,並且會引起很多混亂,所以我必須在最后再說一遍:除非您完全確定自己在做什么,否則切勿為已經共享的分支重新設置基礎。
我強烈建議閱讀以下(免費的在線可用)書籍的第三章http://git-scm.com/book ,以更好地了解合並/重新設置的工作方式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.