[英]With Git, after my code commits are merged to the master branch, do I delete my remote branch, clone master again and checkout the next branch?
[英]Do commits of a merged branch become part of master branch after merge?
假設我有一個A->B->C
( master
)分支和A->B->D->E->F
( develop
)分支。
將develop
合並為master
后,將創建一個新的合並提交,例如G
,因此master現在看起來像A->B->C->G
(master)。 G
是一個合並提交,有兩個父級, C
(主級)和F
(開發級)。
在合並操作之后,是否所有對開發的臨時提交(即D->E->F
)現在都是master
一部分?
我認為是因為可以從合並的提交G
到達D
或E
或F
,合並的提交G
肯定是master
一部分,但是我不確定。 有人可以確認或澄清嗎?
我想知道在合並操作之后,是否在開發中所有臨時提交(即
D->E->F
現在在概念上都成為master
一部分?恕我直言,是的,因為可以從合並提交
G
(肯定是master
一部分)到達D
或E
或F
完全正確。
您可以通過要求Git列出包含給定提交的分支來驗證這一點,例如
git branch --contains D
是的,這是打算使用Git的一種方式。
請注意,如果需要,您可以使用單個合並的提交(不同的提交)有效地替換 develop
的三個提交。 您可以只在master
上進行合並的提交,然后完全放棄分支develop
這樣沒人可以使用原始的三個提交。 該git merge --squash
命令,可以分兩步實現這一目標:做南瓜合並(這是不是一個真正的合並),然后刪除develop
分支。 請注意,其他任何嘗試使用develop
人都必須適應這一點:他們可能也必須刪除自己的develop
分支。
或者,你可以git reset
走三個提交的develop
,有利於新組合的承諾你做出和地點的倒帶尖端develop
。 然后,您可以根據需要正常合並。 git rebase -i
(交互式rebase)命令對於此特定工作流程很有用。 請再次注意,其他任何嘗試使用develop
人都必須適應這種情況:如果他們已經在要用合並的單個commit替換的原始三個commit上構建了commit,那么他們將需要自己進行基礎調整。
還有許多其他選擇。 每種都有各種優點和缺點; Git讓您做最喜歡的事情。 但是您在問題中概述的一個是Git最簡單,最容易的一種,它通常是一個不錯的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.