当处理修订或功能时,有时我会偶然发现其他细微的问题,这些问题可以在几秒钟内即时得到改善。当我立即执行它们,然后提交完成的功能/修复程序时,提交包含不止一件事。例如"add feature X and code clean up"
或"fix bug X and improved logging"
。最好将其分为两个提交。万一这两个更改发生在同一个文件中,我不能简单地添加一个文件,提交,添加另一个文件然后再次提交。因此,我看到以下三个选项:
在处理某些事物时故意忽略无关的事物。
复制具有两个更改的文件,将其还原,包括一个更改,提交,包括另一个更改,然后再次提交。
不要更改无关紧要的小东西,而是将它们添加到待办事项列表中,然后再做。
我不太喜欢这三个选项,原因如下:
如果不能解决小问题,则代码质量可能会受到影响。如果我有意识地错过了一次不费吹灰之力就可以改善的机会,那我就会感到难过。
这会增加人工工作,并且容易出错。
这对于不太小的待办事项很好,但是将一个微小的项目添加到待办事项列表中并稍后再访问通常比立即修复要花费更长的时间。
您如何处理这种情况?
git add -p
了很多东西,让我可以交互式地选择要提交的文件部分。如果清理工作足够分开,则很容易做到。如果分离比较困难,我将状态提交到临时分支,然后将更改手动添加到我的实际分支中,直到临时分支没有差异。这需要做很多工作,但是允许我检查每个提交是否可以独立工作。