簡體   English   中英

Git:是否將本地合並分支上的提交推送到遠程?

[英]Git: Do commits on local, merged branch get pushed to remote?

假設我有以下 git 歷史

          L1 - L2 - L3  <- Local branch
         /            \
A - B - C -- D -- E -- M <- master

其中 L1、L2 和 L3 是我本地分支上的提交,M 是到 master 的合並提交。

現在,當我將更改推送到遠程時,本地分支中的提交是否會成為歷史記錄的一部分? 換句話說,遠程存儲庫中的歷史記錄會像上圖還是像

A - B - C - D - E - M <- master

另外:在快進合並的情況下會發生什么?

合並提交有兩個父提交。 您不能只是從歷史記錄中刪除本地分支的提交。 M沒有L3就不能存在,L3沒有L2就不能存在,依此類推。 這種完整性是 Git 的基礎。 因此,推送的master分支必然“​​看起來像一張圖”,本地分支上的提交不會憑空消失。

在快進合並中,沒有什么特別的事情發生。 歷史是線性的。 這不是真正的合並,它真的是“快進”。 在您的示例中,假設沒有提交 D 和 E,您合並本地分支,則歷史記錄變為:

A - B - C - L1 - L2 - L3 <- master

請注意,也沒有 M(沒有合並提交)。

暫無
暫無

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

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