问题描述
我已经养成了定期使用git reset --hard
的坏习惯。
我现在发现有git reset --keep
,如果我真的需要删除某些内容,我什至可以做git stash && git stash drop
。
因此,我想禁用硬重置,或者让他们询问无法删除的未提交更改,或者至少创建备份。无需在外壳函数中包装git
就能做到吗?
解决方法
git
本质上不支持您的要求。
您可以编写一个名为git
的脚本或Bash函数,并将其放在git
中PATH
的前面。脚本或函数只会检查“禁止的命令”,否则运行常规的git
程序(例如/usr/bin/git
)。
众所周知,Git在执行潜在危险的操作时不会警告用户。在任何情况下,对于构成危险的问题,意见可能会有所不同。基本上,当您在命令行上使用Git时,是在说您是高级用户,并且知道自己在做什么。没有办法让Git对这个想法不屑一顾。
相反,您可以使用GUI,例如Sourcetree。它知道reset --hard
有潜在危险,并且会发出警报,迫使您停下来并认真思考自己在做什么。