一系列圖表回答:
-
創建foo
和bar
關閉master
後提交C:
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)
另一個變化COMMITED上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' ---
你是什麼意思「然後我去吧,重複這個過程」?你在哪裏合併?關於「我發現分支有點無用」,我認爲這取決於您的工作流程。對於你正在做的事情,這可能是沒用的。但是,在協作環境中,您可以擁有代碼審查和自動化測試等各個分支,並提供有關更改的反饋。分支在這種環境中非常有用。 – jszakmeister