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

参考资料

感谢阅读,欢迎评论^-^

打赏我吧^-^

你可能感兴趣的:(工具)