相比于无脑式的git add . 和git add -A操作,-p参数更符合实际使用场景,因为往往我们在做需求时,并不完全是线性执行的,比如偶尔我们会修复一个意外发现的bug,或者调整一下之前糟糕的代码风格。但这些并属于任何一个feature之列,所以在做git add操作时,一股脑的全丢到index肯定是不合理的,比较好的做法是用git add -p交互式的选择本次要提交的内容。
根据时间局部性原则,其实我们更容易调整刚刚提交过的修改,并且这些调整往往都是比较细枝末节的。这意味着这些调整独立成为新feature的可能性很小,比较好的做法是直接追加到上一次commit里就好了。不过需要指出的是–amend会修改commit的哈希值,所以请不要在公共分支上执行这个操作,最好只在你本地的WIP分支上执行。
这个指令应该都比较熟悉,实际开发中会有很多实验性的操作,如何快速的让你的代码环境回滚到初始状态就全靠它了。当然了除了这个比较彻底的--hard
模式外,还有另外的2个选项--soft、--mixed
,它们之间的区别都在下面这张图里了:
-完-