用一系列图表回答:
--
在提交 C: 后创建 foo 和 bar 关闭 master:
foo
/
master A ---- B ---- C
\
bar
处理foo 并合并到master: (git checkout master && git merge foo)
foo D ---- E ---- F
/ \ (merge-commit)
master A ---- B ---- C --------------- G
\
bar
与此同时,bar 独立进步..
foo D ---- E ---- F
/ \
master A ---- B ---- C --------------- G
\
bar D' ---- E' ----- F'
您现在希望将bar 更新为master (git pull origin master)
foo D ---- E ----------- F
/ \
master A ---- B ---- C ---------------------- G
\ \
bar D' ---- E' ----- F' ---- G' (another merge-commit)
在 foo 上提交的另一个更改
foo D ---- E ----------- F ---- H
/ \
master A ---- B ---- C ---------------------- G
\ \
bar D' ---- E' ----- F' ---- G'
然后,将bar 与新的foo (git checkout bar && git pull origin foo) 同步
foo D ---- E ----------- F ---- H
/ \ \
master A ---- B ---- C ---------------------- G \
\ \ \
bar D' ---- E' ----- F' ---- G'---- H' (another merge-commit)
然后将bar 合并到master 中(master 作为活动分支,git merge bar)
foo D ---- E ----------- F ---- H
/ \ \
master A ---- B ---- C ---------------------- G -----}-------- I (latest merge-commit)
\ \ \ /
bar D' ---- E' ----- F' ---- G'---- H' ---