So GitHub has the ability to merge+squash commits for PR。如何在GitHub中將git dev分支與合併+壓扁PR進行同步後同步?
我們按照從dev
- >master
PR'ing代碼的過程。
以前,我一直在'合併'PR,但是會生成一個新的提交,它會顯示:「Merge Pull Request #1 from foo/bar
」。 :(Boooo ...
所以我想我可能會嘗試新的Squash Commits
啄與GH,這創造了我以前所有的提交壓扁。好了,到目前爲止,一切順利。
我然後一個新的提交回到我的dev
分支(在我的開發者機器上)..拉下upstream/master
(這是公關和壁球合併發生的地方)),現在增加了另一個致力於我的本地歷史!它沒有去「哦,哇,你是waaay不符合...讓我們同步」。它只是做了合併。
所以壁球+合併按鈕壓扁4個提交,並用1取代它... 拉upstream/master
我的本地機器上現在顯示的是4個提交仍然存在,壓扁提交的PR做了一個新的承諾是「Merge branch master .. blah ... noise ..spam
」承諾:(:(:(
有一個特殊的技巧/工作流程我應該做後發生合併,壁球..確保我dev
分支正確同步時間?象。 。是不是每個人在刪除本地主機dev
分支之前都要先將upstream/master
退回到他們的本地主機,並將其分配到(新創建的)dev
分支中?
請記住:這裏的目標是避免那些糟糕的「Merge Pull Request#2 ..」merge bubble消息。
或者,人們通過CLI只是在做這個暫且到GitHub上學會了如何做到這一點:(
最簡單的選擇是在CI通過時創建一個獨立的功能分支,並將主窗口合併回主窗口。然後刪除分支。 – osowskit
其實,整個「反而不是合併」的想法頗具誤導性。合併歷史是正確的。它具有該功能的發展歷史,該功能希望包含有關爲什麼進行更改的信息。它具有合併提交,它顯示合併功能的時間。重新合併或合併壓縮分支不以任何方式鏈接到原始分支,從而丟失重要信息。如果您不喜歡'git log'或UI如何顯示合併歷史記錄,那麼您應該修復_that_。例如使用選項'--first-parent' – max630