起因
首先先給大家看下我們公司一個專案的功能開發分支。
從左邊生命線可以看到好多好多的合併記錄。
再給大家看看我們公司的 master 的分支。
處女座有沒有感覺到很舒服啊。
因為我們的老大是處女座,所以他很強迫的不想看到 Merge
這種無用的 commit。 :expressionless:
So,讓我們來了解下如何在分支合併後更加美觀。
讓我們先來了解下常用分支合併步驟。
1.先建立一個測試用的倉庫。
2.建立一個分支進行修改並提交。
3.發起合併請求。
此時,我以前都是通過點選合併按鈕來確認合併就 OK 了。
在 Github 中則是一個 Merge pull request
的按鈕在下方。
如果是有衝突的話。
則通過如下方式進行衝突解決併合並。
git pull origin test
vim 衝突檔案
git add -A
git commit -m ""
git push origin master
4.檢視結果
此時在提交欄中就會顯示一個灰色的 Merged 合併記錄。
顯然,當合並次數越來越多時。
提交欄中的記錄就會像上方我的開發分支截圖一樣越來越多,越來越複雜。
建立乾淨、美觀、適合處女座的合併記錄
1.切換回 master 並更新,在建立新的分支。
2.修改提交併發起合併。
這裡的 git rebase master
是為了保持與 master 的更新並處理衝突。
這樣 master 在合併時就不會產生衝突。 (這一步非常重要)
3.通過 rebase 合併分支。
git checkout master
git fetch --all --tags
git merge origin/master
git rebase origin/master
git push origin master
在該操作中可能會有衝突(因為篇幅原因就不贅述了)。
4.檢視結果
最後
圖片有點多,非常抱歉。
還是想問各位有沒有覺得很舒服呢? :laughing:
然後在上方的命令當中穿插了很多。
git checkout master
git fetch --all --tags
git merge origin/master
是為了更新master分支。git pull
本質就是 git fetch + git merge
。
由於篇幅原因。rebase
中的原理就由大家自己去百度吧。