我宁愿做临时提交而不是使用git stash。更重要的是,我更喜欢那些对git经验较少的同事避免藏匿。
有没有办法禁用git stash,以便与它交互的命令以错误终止?
编辑:感谢您的答案,建议我可以做什么,但我真正想要的是一个“是”或“否”的答案,如果可能的话,有一些理由,对于字面问题。
答案 0 :(得分:2)
将其替换为脚本:
cd /usr/lib/git-core
mv git-stash git-stash.backup
echo "#!/bin/sh
echo git stash is disabled, please commit your changes" > git-stash
chmod a+rx git-stash
答案 1 :(得分:1)
我曾经回答了类似的question。
在您的情况下,该功能可能是:
function git () {
if [ "$1" = "stash" ];then
echo '"git stash" is disabled, try "git commit" instead'
exit 1
else
command git $@
fi
}
但是这个功能根本不健全。它可以阻止以git stash
开头的命令,但您可以使用git '' stash
或git --git-dir=foo.git stash
等命令轻松绕过命令。如何测试命令是否基本上是git stash
是另一个问题。此外,该功能不会影响其他工具中的Git插件。而且我认为这个解决方案没有给出好的方向。理想情况下,Git应该有一个开关来启用/禁用它的一些子命令,但我担心这是另一个大问题。
如果我做对了,问题是你希望经验不足的同事避免git stash
,以免他们减轻麻烦。这是不公平的。如果您作为经验丰富的Git用户负责培训他们如何正确使用git stash
及其子命令,那将是很好的。向他们展示git命令的力量和美感。毕竟,git stash
并不难理解。他们是程序员。他们可以学习。
相信我,对于对Git内部知之甚少的经验较少的Git用户而言,将git stash
替换为git commit
将是一场灾难。他们肯定会推动不必要的提交,并在很多问题上困扰着你。