在向索引添加一些更改后,防止意外提交所有本地更改

时间:2015-12-07 11:40:28

标签: git

我经常跑git commit -a。但有时,我想使用git add将当前更改拆分为多个提交。

当我git commit -a进行了一些已经添加到索引中的更改时,是否有办法触发警告?否则,所有拆分更改的工作都将丢失。

1 个答案:

答案 0 :(得分:1)

所以,首先:明显的解决方案是不使用git commit -a;我知道已经意识到了这一点,但是会有人不那么习惯于通过搜索来到这里的git,并且值得明确指出-a只应该在想要提交所有的更改。

你可以写一个预提交钩子;查看任何git repo的.git/hooks/目录,找到几个示例脚本。

棘手的部分是弄清楚你处于commit -a状态;我认为最简单的部分就是滥用psgrep的权力:

TEST_VARIABLE="$(ps -AF|grep -E '.*git commit.*-a')"
if ["$TEST_VARIABLE" != "" ]; then; ..<WARN HERE>.. ; 

或类似(注意:这实际上是伪语法。随意适应您喜欢的shell /脚本语言)。