git rebase 续命
下午跟后端同事调试前后端接口,整了老半天,他和我的代码都拉的远程仓库最新代码,但在他的机器和我的机器上看到的程序运行状态却不一样,疑惑之下我两吭哧吭哧定位问题,又过了老半天,发现是多模块 maven 工程 pom 版本不一致导致的。我俩赶紧去 gitlab 上找提交记录,看是谁修改了 pom 版本信息。结局总是很出人意料的,tmd 的提交人竟然是我!!!我们项目是前后端分离的,我负责前端这块,java 早就忘记不知道咋整的啦,更别提改别人的 java 代码.......
至于 git 提交为什么会多提交一些修改记录,这个问题还没有定位到原因,但是明天还得上班呀,问题总得先解决了。跟老大讨论了半天,老大用 git rebase
把代码 治好
了,之前没用过 git rebase
命令,赶紧了解一下先。
主分支 master,开发分支 develop。
切换到 develop 分支上,执行 git rebase master
,会将 master 分支跟当前分支 develop 做合并,如果有冲突会提示进行修改,develop 分支相对于 master 分支多开发的代码不会有任何影响。
git rebase
跟 git merge
都用于合并代码,下面这段话比较形象表示二者区别,如果要再深入一点了解可以看这篇文章 《git rebase 中文版》。
git rebase有点类似git merge,但是两者又有不同,打个比方,你有两个抽屉A和B,里面都装了衣服,现在想把B中的衣服放到A中,git merge是那种横冲直撞型的,拿起B就倒入A里面,如果满了(冲突)再一并整理;而git rebase就很持家了,它会一件一件的从B往A中加,会根据一开始放入的时间顺序的来加,如果满了你可以处理这一件,你可以继续加,或者跳过这一件,又 或者不加了,把A还原。所以merge适合那种比较琐碎的,简单的合并,系统级的合并还是用rebase吧。