Git 合并commit
对一个仓库进行了多次提交,提交信息很多,需要将提交的信息合并,例如对如下的三条提交记录进行合并切换到dev分支后,执行命令git log .查看需要合并的提交记录,然后执行合并命令git rebase -i HEAD~3其中HEAD~3表示合并最近三次的提交,如果是需要对之前某几次的提交进行合并,则执行命令git rebase -i <commit_start 不含>...
对一个仓库进行了多次提交,提交信息很多,需要将提交的信息合并,例如对如下的三条提交记录进行合并
切换到dev分支后,执行命令
git log .
查看需要合并的提交记录,然后执行合并命令
git rebase -i HEAD~3
其中HEAD~3
表示合并最近三次的提交,如果是需要对之前某几次的提交进行合并,则执行命令
git rebase -i <commit_start 不含> <commit_end 含>
commit_start和commit_end表示的是提交的commit ID,commit_start表示开始的commit,不包含commit_start本身,commit_end表示截止的commit,包含commit_end本身,commit ID无需输入全部,输入部分即可。例如我们的需求中可以输入
git rebase -i 424bbe301394197d 97fe7dbb98848
显示结果如下
含义解释如下
pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)
基本使用中主要用s和p,一般都直接整合到第一次提交上,修改如下
保存退出后提示信息如下
这里可以修改为合并后需要的提交信息,修改如下,完成后再次保存退出。
保存退出后git log
显示如下
然后使用命令
git push -f
将修改推送到远程服务器dev分支
如果想修改之前的某两次提交,例如有五次提交,分别为: 1 2 3 4 5
commit 5
commit 4
commit 3
commit 2
commit 1
希望将2和3合并,变为1 2 4 5,执行如下命令
git rebase - i commit_id_1
执行结果如下
将3的pick改为s,然后保存退出后重新填写commit msg,最后执行git push -f
推送到远程分支
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)