git學習總結之分支合併(merge、rebase)

最新更新時間:2020年06月09日15:41:23

《猛戳-查看我的博客地圖-總有你意想不到的驚喜》

本文內容:分支管理,分支合併

merge

  • 將功能性分支合併到主分支,此時會在master分支產生一個新的commit記錄K
 A---B---C---D---E---F master
      \
       G---H---I---J feature_1

注意:大寫字母表示commit記錄

  • git checkout master
  • git merge feature_1
  • git push
 A---B+++G+++H+++I+++J+++---C---D---E---F+++K master
      \ 
       G---H---I---J feature_1

rebase 變基

  • 用法一:將功能性分支合併到主分支,master分支不會產生新的commit記錄K
 A---B---C---D---E---F master
      \
       G---H---I---J feature_1
  • git checkout master
  • git rebase feature_1
  • git push -f
 A---B+++G+++H+++I+++J+++C---D---E---F master
      \                 
       G---H---I---J feature_1

遇到衝突:

  • git rebase --abort 終止操作
  • git add . + git rebase --continue 解決衝突
  • 用法二:合併無效的自動Merge,-i的意思是–interactive,即彈出交互式的界面讓用戶編輯完成合並操作

場景:當push的時候,提示代碼滯後,pull操作後會生成自動Merge的commit記錄

  • git rebase -i commitId 指定區間
  • git rebase -i commitId1…commitId2 指定區間,左開右閉
  • git rebase -i HEAD~5 指定次數
  • vim編輯器 :wq 直接退出即可
  • git push -f
  • 用法三:將多個不同的commit記錄合併
  • git rebase -i *** 會彈出vim編輯器,進行編輯即可,可以採用squash或fixup
pick:保留該commit(縮寫:p)
reword:保留該commit,但我需要修改該commit的註釋(縮寫:r)
edit:保留該commit, 但我要停下來修改該提交(不僅僅修改註釋)(縮寫:e)
squash:將該commit和前一個commit合併(縮寫:s)
fixup:將該commit和前一個commit合併,但我不要保留該提交的註釋信息(縮寫:f)
exec:執行shell命令(縮寫:x)
drop:我要丟棄該commit(縮寫:d)

修改commit提交說明

  • 修改最近的一次commit
  • git commit --amend
  • git push -f
  • 修改多次commit
  • git rebase -i *** 可參考上文

pull

  • git pull = git fetch + git merge
  • git pull --rebase = git fetch + git rebase

參考資料

感謝閱讀,歡迎評論^-^

打賞我吧^-^

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章