簡體   English   中英

如何強制將git分支合並到另一個分支?

[英]How to force-merge a git branch into another?

我們有兩個分支, master (穩定/實時)和stage (測試)。 部署時, stage將合並到master並且master將被部署。

時光倒流有人(當然這不是我的代名詞)僅對master進行了幾次提交(修補程序)。

現在,當將stage合並到master ,受那些修補程序影響的文件將不再被合並,它們只會忽略stage分支中的更改。

這似乎是git工作的方式-順便讓我疏遠了。 我認為cherrypick荷蘭國際集團的主提交或rebase荷蘭國際集團,但由於認識不足,不知道任何這會成功-或者如何正確地做到這一點。

合並這些異步文件的最佳方法是什么,以便兩個分支的更改都可以保留下來?

UPDATE
合並確實按預期進行; 我對產生的差異感到非常困惑,直到我最終意識到這只是單向合並。

我看不到如何在master上創建這些修補程序會成為問題。 在下一個發行版中將stage合並到master應該可以正常工作-保留修補程序,並將新的提交應用在它們之上。

但是,您應該做的是將合並master轉移到stage以將這些修補程序帶回測試區域。 您的兩個分支將同步,並且一切正常。

我建議重新定基:

git rebase --onto master <hash of the commit before making changes on stage> stage

您可以使用git log獲取哈希。 開始進行更改之前,需要在stage分支上進行最后一次提交。

如果您在兩個分支上都修改了相同的文件,則git會要求您解決沖突。 您可以使用git mergetool或手動執行此操作,然后繼續執行git rebase --continue

這會將修補程序添加到stage分支,然后您就可以將其與master合並。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM