如何通过 Git 将同一个文件的里多个修改 add 到不同的 commit 中

Kim 正在改着某个 xxx bug,突然发现有个变量名拼错了,于是顺手改掉了。最后将 bug fix 和这个 rename 一起提交了。


以上这种“将不相关的修改在一个 commit 中提交”的场景,我们在开发中经常会碰到,然后几个月后看代码,会疑惑为什么 xxx bug 会涉及到改变量名 🤔

这种情况也不能怪程序员,继续说上面的例子,如果要干净的提交代码,一种方法是把之前 bug fix 的代码 Ctrl-Z,然后先修改变量名提交;另一种就是记住变量名的位置,先把 bug fix 完,提交后回头改变量名。以上两种方法,哪种都挺麻烦 —— 没错,麻烦是造成代码混淆着提交的很大原因之一。

不妨试试通过 git add -p path/to/file 这条命令来解决上述问题。-p 通过所谓的 Staging Area,能让你在一个文件里的多个修改里选择自己需要的修改 add。

对于上面的例子,我们可以同时改完 bug、改完变量名,然后执行 git add -p,这时会有类似下面的

该命令会一个个罗列出文件中的所有修改,对于每个修改你可以选择(注意红框部分)—— 接受(加入这次 add)或拒绝(排除这次 add),这样我们就能尽量保证每个 commit 的干净了。


参考资料:

Creating the Perfect Commit in Git

posted @ 2021-11-16 17:10  尹宇星_Kim  阅读(323)  评论(0编辑  收藏  举报