目录
代码提交一个功能点一笔提交记录,干净利落,也便于代码分支维护及代码合并。
1.代码追加提交
如果是最近的一笔代码被打回重新修改,我们可以直接针对问题点进行修改,修改后重新进行代码git add(rm )commit 操作,注意此时commit可以使用 git commit --amend 将提交以追加提交的方式合并到最近的一笔提交记录上。
例如:在一笔修改提交本地分支后发现一个文件test6.txt未提交。
此时可以直接对文件test6.txt进行add和追加提交。
此时弹出提交内容信息:
补充提交信息即可。
当然除了代码有问题外,比如提交信息写错了,也可以使用git commit --amend 命令重新填写提交信息。
如此操作后,新的修改就补充追加到最后一笔提交记录的log里面了。
注意:在代码提交评审入库前,进行追加提交,如代码入库后再进行追加提交,后追加提交到本地的代码无法提交入库,需要想其他办法提交。
2.合并本地多笔commit记录
例如我这里有四笔提交文件的操作:
四笔操作依次提交文件file1.txt file2.txt file3.txt file4.txt 接下来我这边使用git rebase命令对四笔提交合二为一。
命令:git rebase -i HEAD~4
以上命令会把最近的四笔提交进行rebase操作。
可以看到可以使用 squash、fixup 指令,区别是 squash 会将该 commit 的注释添加到上一个 commit 注释中,fixup 是放弃当前 commit 的注释;这里使用squash进行操作,操作后,需要填写合并后的commit信息。
修改commit信息保存。使用git log查看:
可以看到四笔提交合并到一笔提交记录上去了,清爽!
3.删除本地提交中的提交记录
同样那上面的四笔提交记录为例,此时我们想合并file1.txt和file3.txt的提交而删除file2.txt和file4.txt提交。
我们同样使用:
git rebase -i HEAD~4
需要注意此时我们使用drop参数。
我们使用drop对file2.txt和file4.txt的记录进行删除。
合并后我们可以git log:
查看目录文件:
可以看到,合并后2和4的记录不在了 ,对于操作的文件也不在了,清爽!
最后延伸一个命令:
git reflog
git reflog可以把我们进行过的git操作进行记录,可以看到,我们git rebase的几条记录其实被git分解执行了。
因本文主要讲解commit相关操作,不对reflog做深入讲解,更多:reflog做详细介绍可参考:git reflog用法回顾。
小结:
命令:git commit --amend 追加commit
git rebase -i HEAD~4 对最近的4笔提交进行rebase操作。