现在,Git 2.23已支持git switch
和git restore
,我想通过阻止git checkout
工作来重新训练我的肌肉记忆。如何使git checkout
输出显示错误消息并以非零状态退出?
没有一种方法可以完全满足您的要求。
Git不允许您使用别名覆盖内置子命令,这是有充分理由的。您正在使用的其他工具可能会使用,git checkout
并且允许您用其他工具替代它会破坏所有这些工具。
但是,您可以git
在shell配置中覆盖该命令,以使如果子命令为checkout
,则该命令将失败,如下所示:
git () { if [ "$1" = "checkout" ] then echo "Don't use checkout; use switch or restore." >&2 return 1 else command git "$@" fi }
只要仅为交互式外壳程序而不是非交互式外壳程序(例如脚本)加载此文件,它就应该起作用并且不会对任何事物产生负面影响。由于尚未指定要使用哪个选项,因此在您选择的shell中如何执行此操作是一项练习。
另外,请注意手册页中的git switch
和,这些警告git restore
是实验性的,可能会更改。