bash - 如何使用特定选项限制 git 命令?

标签 bash git

原因可能很愚蠢,但我有一个使用 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/

相关文章:

git - Cordova:排除插件和平台

linux - Ubuntu 16.04 "Bash: Alias: X: not found"

perl - 这个混淆的 bash/perl 代码有什么作用?

node.js - 大型 NPM repo - 需要将大型测试套件放在单独的项目中吗?

git - "selectively"与 git merge

git - 你如何让 git diff 在 OS X 上使用 gitx --diff

bash - 将文本文件从包含 X 的行剪切到包含 Y 的第一行

linux - 巴什 : merge two directories and delete duplicated data

html - 如何在终端中解析html文本文件?

git - 在 pull 请求时重命名分支