簡體   English   中英

Git-不與--squash合並

[英]Git --no-merged with --squash

我更喜歡將功能分支與--squash合並,因為它可以讓我跟蹤添加功能的時間,通常它是需要bisect完整功能。 我發現隨着時間的推移,這可以很好地表示穩定分支的狀態。

但是,當使用--squash分支時,合並的分支將顯示在--no-merged而不是在--merged下。 這有時使難以跟蹤每個分支的狀態(即完成時)。 我不想刪除“完成的”分支,因為碰巧我不得不將它們檢出以進一步平分,還有其他原因(有時問題需要多條攻擊路徑才能解決,而我發現它很有價值記錄下來)。

可以通過以下任何一種方式:

  • --merged--no-merged承認壓扁分行實際上已經被合並。

要么

  • 歸檔合並(壓縮)分支在某種意義上說它們不會出現在任何一個列表中,但是如果我需要它們仍然可用。

實際上,如果可能的話,我確實更喜歡第二種解決方案。 有很多非當前分支的積累和隱藏它們將使在列表中查找我正在尋找的當前分支變得更加容易。

當且僅當另一個分支將它們作為直接或間接父級合並時,分支才會合並(即,當遵循提交的父級時,您有時會到達該分支)。 這也不例外。

壓縮更改時,將創建一個新的提交對象,該對象一次包含該分支中的所有更改。 因此,您有一個用於該提交的“新分支”,而舊分支一直存在以保持原始提交可用。 現在,當您合並時,將合並一個提交,因此僅合並一個分支。

因此,不,當您壓縮更改時,僅包含未提交的原始分支將不會被視為合並,這僅僅是因為未合並。 也沒有辦法更改此行為或“存檔”分支。 您唯一可以做的就是改為為分支創建一個標記,作為標記,這樣您就可以刪除分支本身。

但是,正確的方法是僅合並完整分支。 特別是如果您要說原始分支“如果需要則仍然可用”。 如果你想,那么你應該只保留歷史里面原來的分支,所以它是歷史的真正的一部分。

如果您擔心歷史記錄的可讀性,則應考慮始終進行非快進合並,因此合並的分支始終總是單獨出現在側面。

您可以正常合並(不壓縮)並在git命令中使用--first-parent選項。 例如

git log --first-parent

以“簡化”歷史。 這會將要素分支簡化為僅合並提交條目,並且您將不會在合並分支上看到提交。

暫無
暫無

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

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