问题出现:
小王负责一个模块的开发任务,并在一周内完成了整个模块的开发,小王分别在第一天、第三天和第五天进行的代码提交和推送,于是提交记录如图,代码记录中小王的一个模块与其他人的多次提交产生交叉,有没有办法合并这三条记录呢,且保留小王每次的提交信息呢?
问题解决:使用git rebase -i命令
小王可以在每次想要提交代码时,仅进行git commit 而不使用git pull,在最后一天,小王已经有了三次commit没有推送到远端,使用git rebase -i 命令,可以进一步处理这些commit:
-
执行git rebase -i ,弹出如下窗口图1,其中前三行表示本地的三次提交,每条的提交以开头的pick,pick代表选用这条提交,关于pick的解释可以再下边Commands中找到相关解释,现在我们需要将提交记录归并为一条,只需要将第二次和第三次提交融合到第一次即可,所以我们将他们的pick修改为s,如图2,然后退出并保存,会进入到下一个编辑页面,你可以再次编辑这三条提交的message信息,这里需要注意,不要删除第二条和第三条的commit messge,如果想要删掉,可以将pick修改为f,表示仅将代码融合到上次,不使用mesage,那么继续如图3,修改后保存并退出,可以看到原来的3条commit已经变成了1条,如图45
总结:
通过git rebase -i合并多条提交,提交记录由3条变为1条,代码记录又干净了不少。