原因可能很愚蠢,但我有一个使用 git commit -am 的坏习惯,而且我讨厌它。我知道我可以恢复它,但我想知道是否有一种方法可以阻止命令执行?
例如,有没有办法向我的 .bashrc 添加脚本或别名,以便每次运行 git commit -am "message"时都会阻止它运行并向我显示一些消息?
编辑:
正如 @chepner 在评论中提到的,我应该更清楚,我不喜欢的部分是 -a
。
最佳答案
实际上,您可以编写一个预提交 Hook 来检查这一点。无论如何,它并不完美,因为它检查了太多内容:任何 git commit --include somefile 也会触发它。
这是一个使用此技术的示例(但没有用)预提交 Hook 。如何根据您的需求进行调整应该是显而易见的。
#! /bin/sh
path=$(basename $GIT_INDEX_FILE)
case $path in
index) echo "normal commit";;
index.lock) echo "commit -i or -a";;
next-index-*.lock) echo "commit -o";;
*) echo "something else: $GIT_INDEX_FILE";;
esac
exit 1
(制作此可执行文件并将其放入 .git/hooks/pre-commit
中。)
关于bash - 如何使用特定选项限制 git 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67574426/