[英]Merging my branch to master which is already merged with changes from master
1. C
|
B-D-E
| my branch
A
master
我通過分支與開發中的更改合並
C | BDCE | my branch A master
現在我需要將我的分支合並到 master
這會在 master 中重復提交C嗎?
那么你可以嘗試幾件事:
出於這個原因,我個人更喜歡壁球合並。
在 git 中,分支只是一個指向提交的指針——就像一個標簽,但可以移動。 真正創造歷史的是提交的“父母”。 (為了強調這一點,我故意沒有將下圖中的所有分支都畫成整齊的線條。)
根據您的描述,聽起來您的初始 state 是這樣的(您沒有告訴我們“開發”指向的位置):
/- C <-[develop]
/
A - B <-[master]
\
\- D - E <-[my_branch]
如果你合並 develop 到 my_branch,默認會創建一個“合並提交”,像這樣:
[develop]
v
/- C -----\
/ \
A - B <-[master] \
\ F <-[my_branch]
\- D - E --/
將它與另一個合並提交合並到 master 看起來像這樣:
[develop]
v
/- C -----\
/ \
A - B \
|\ F <-[my_branch]
| \- D - E --/ \
| \
\--------------- G <-[master]
這里沒有重復。 但是也沒有 state 看起來像您在問題中畫的那樣。
如果不是正常的合並,而是將my_branch重新定位到 develop,您會得到這個(請注意,提交 D2 和 E2 是由基於 D 和 E 的重新定位創建的新提交):
[develop]
v
/- C - D2 - E2 <-[my_branch]
/
A - B <-[master]
\
\- D - E <-[abandoned commits]
然后合並到 master 看起來像這樣:
[develop] [my_branch]
v v
/- C - D2 - E2 -\
/ F <-[master]
A - B ----------------/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.