赞
踩
在项目实践中,我们经常会遇到以下场景,需要结合git命令来进行操作。
一 合并多个已经push的commit
这种情况分两种情况:
对于第一种情况,如果想要合并前面已经push的几次commit,比如前三次,网上有很多地方提到,使用下面的命令就好:
- git rebase -i HEAD~3
-
- // or
-
- git log //先获取commit log, 找到想要rebase的commit id(a027673196c2101e512893641b92c60cb60c3920)
-
- git rebase a027673196c210 //取前几位就行
-
git rebase之后会弹出相应的vi编辑器,按键盘上的‘i’,进入编辑模式, 根据自己的需求把后两行的需求改成 'f' 或者 's',f 和 s代表的意思在下面Commands有详细的解释,如果不想看,可以无脑改成 'f'. 然后在键盘上按 ':wq' 退出并保存。这时候rebase就开始了。
注意:如果rabase过程中有冲突,先去处理代码冲突(我一般在vscode中直接处理)。然后
git rebase --continue
rabase成功后,git push -f,再提交一次,就会发现之前的N多次commit已经合并成一个了。
对于第二种情况,因为develop分支是不断变化的,其他人merge代码到develop,我们为了以后自己的代码提PR时没有冲突,把当前develop最新的代码也更新到自己的分支(这个是另一个知识点),然后,自己也提交了commit,这种情况下,commit记录就会比较混乱,既有merge develop的记录,也有自己真正commit的记录,也有可能有pull的记录,这个时候,我们需要下面的命令来合并commit:
git rebase -i origin/develop //develop换成你的主分支名字
剩下的操作和上面基本一致,不赘述。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。