合併分支【分支】 | 連猴子都能懂的Git入門指南 - Backlog
文章推薦指數: 80 %
Merge. 使用merge,可以合併多個歷史記錄。
如下圖所示bugfix 分支是從master 分支分開出來的。
分支.
完成作業的Topic分支,最終都會合併到Integration分支。
合併分支有2種方法:使用「merge」或「rebase」。
根據使用的方法合併後的分支歷史記錄有很大的差別。
Merge
使用merge,可以合併多個歷史記錄。
如下圖所示bugfix分支是從master分支分開出來的。
合併bugfix分支到master分支時,如果master分支的狀態是沒有更改過的話,那麼這個合併是非常簡單的。
bugfix分支的歷史記錄包含了master分支的歷史記錄,所以只要把bugfix移動到master分支就可以導入bugfix分支的內容。
這樣的合併被稱為fast-forward(快轉)合併。
但是,master分支的歷史記錄有可能在bugfix分支分開後有新的修改。
這時候,要把master分支的修改內容和bugfix分支的修改內容匯合起來。
匯合兩個修改時會產生一個名為「合併提交」的提交。
Master的位置會被更新到新建立的合併提交上。
Note
執行合併時,使用nonfast-forward參數選項,即使是可以fast-forward的合併也會建立新的提交並合併喔。
執行nonfast-forward的合併後,分支會維持原狀,要調查在這個分支裡的操作就容易多了。
Rebase
和merge的例子一樣,如下圖所示bugfix分支是從master分支分開出來的。
使用rebase進行分支合併的話會出現下圖所顯示的歷史記錄。
現在來簡單的講解一下合併的流程吧。
首先,rebasebugfix分支到master分支。
bugfix分支的歷史記錄會增加在master分支的後面。
因此,如圖所示歷史記錄會被統一,形成簡單的一條線。
移動提交X和Y有可能會發生衝突,所以需要修改各自提交時發生衝突的部分。
執行Rebase時,master的位置不變,因此,待master分支合併bugfix分支後,master的HEAD會移動到bugfix的HEAD這裡。
Note
Merge和rebase都是合併歷史記錄,但是結果不同。
Merge修改內容的歷史記錄會維持原狀,但是合併後的歷史紀錄會變得更複雜。
Rebase修改內容的歷史記錄會接在要合併的分支後面,合併後的歷史記錄會比較清楚簡單,但是,會比使用merge更容易發生衝突。
您可以根據團隊的需求分別使用merge和rebase。
例如,您想要簡化歷史記錄,您可以試試看以下的操作:
當您想要從integration分支導入最新變更時,您可以在topic分支上使用rebase。
當您想要合併topic分支上的變更到integration分支時,您可以先在topic分支上使用
rebase,接著再將topic分支上的變更合併到integration分支。
分支(branch)
什麼是分支?
分支的運用
分支的切換
分支的合併
Topic分支和integration分支的運用實例
教學1使用分支
0.事前準備
1.建立分支
2.切換分支
3.合併分支
4.刪除分支
5.平行操作
6.解決合併的衝突
7.用rebase合併
遠端數據庫
Pull
Fetch
Push
標籤
標籤
教學2使用標籤
0.事前準備
1.添加輕量標籤
2.添加標示標籤
3.刪除標籤
改寫提交
修改最近的提交
取消過去的提交
放棄提交
提取提交
改寫提交的記錄
匯合分支上的提交一同合併
教學3改寫提交
1.Commit--amend
2.Revert
3.Reset
4.Cherry-pick
5.使用rebase-i合併提交
6.使用rebase-i修改提交
7.Merge--squash
UP
延伸文章資訊
- 130 天精通Git 版本控管(17):關於合併的基本觀念與使用方式
我們用一個簡單的例子說明合併的過程與指令的用法: mkdir git-merge-demo cd git-merge-demo git init echo. > a.txt git add . ...
- 2合併分支【分支】 | 連猴子都能懂的Git入門指南 - Backlog
Merge. 使用merge,可以合併多個歷史記錄。 如下圖所示bugfix 分支是從master 分支分開出來的。 分支.
- 3合併分支- 為你自己學Git | 高見龍 - gitbook.tw
git checkout master Switched to branch 'master'. 接下來,要合併分支是使用 git merge 指令:. $ git merge cat Upda...
- 4git merge命令 - 易百教程
git merge命令. git merge 命令用于将两个或两个以上的开发历史加入(合并)一起。 使用语法 git merge [-n] [--stat] [--no-commit] [--s...
- 5Git merge && git rebase的用法- 浅浅念- 博客园