我经常跑git commit -a
。但有时,我想使用git add
将当前更改拆分为多个提交。
当我git commit -a
进行了一些已经添加到索引中的更改时,是否有办法触发警告?否则,所有拆分更改的工作都将丢失。
答案 0 :(得分:1)
所以,首先:明显的解决方案是不使用git commit -a
;我知道你已经意识到了这一点,但是会有人不那么习惯于通过搜索来到这里的git,并且值得明确指出-a
只应该在想要提交所有的更改。
你可以写一个预提交钩子;查看任何git repo的.git/hooks/
目录,找到几个示例脚本。
棘手的部分是弄清楚你处于commit -a
状态;我认为最简单的部分就是滥用ps
和grep
的权力:
TEST_VARIABLE="$(ps -AF|grep -E '.*git commit.*-a')"
if ["$TEST_VARIABLE" != "" ]; then; ..<WARN HERE>.. ;
或类似(注意:这实际上是伪语法。随意适应您喜欢的shell /脚本语言)。