如何在Git 2.23中禁用"git checkout"?

5

现在 Git 2.23 已经出现了对 git switchgit restore 的支持,我希望通过阻止 git checkout 命令的使用来重新训练我的肌肉记忆。请问如何使 git checkout 输出错误信息并以非零状态退出?

1个回答

11

很抱歉,无法完全按照您的要求进行翻译。

您所请求的操作是不可能实现的。

Git不允许您使用别名覆盖内置子命令,这是有充分理由的。您使用的其他工具可能会使用git checkout,如果允许您用其他内容覆盖它,将会打破所有这些工具。

然而,您可以通过在shell配置中覆盖git命令,使其在子命令为checkout时失败,方法如下:

git () {
    if [ "$1" = "checkout" ]
    then
        echo "Don't use checkout; use switch or restore." >&2
        return 1
    else
        command git "$@"
    fi
}

只要这个程序只在交互式shell中加载,而不是在非交互式shell(如脚本)中加载,这应该可以工作,并且不会对任何事情产生负面影响。如何在您选择的shell中执行此操作留给您自己去练习,因为您没有指定使用的是哪一个。
此外,请注意手册页面中的警告,即git switch和git restore是实验性的,可能会发生变化。

请注意,到了2023年,它不再标注为实验性产品。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接