我可以在单个本地回购协议上使用别名覆盖“git pull”吗?

我可以在单个本地回购协议上使用别名覆盖“git pull”吗?,git,alias,Git,Alias,我正在一家当地的Git回购协议上工作,其中规范的上游回购协议处于Git/SVN的边缘。因此,从Git推送和拉送需要特殊的命令序列,而不仅仅是Git推送和Git拉送。我不控制上游回购,因此我无法改变这一点。然而,有时我忘记并尝试常规命令,打乱了我的本地回购,有时不得不重做工作。幸运的是,远程回购是不可渗透的 我找到了通过alias frex、git co for git checkout创建新git子命令的技巧。我可以设置git别名来覆盖现有的标准git命令,比如push和pull吗?我可以只为奇

我正在一家当地的Git回购协议上工作,其中规范的上游回购协议处于Git/SVN的边缘。因此,从Git推送和拉送需要特殊的命令序列,而不仅仅是Git推送和Git拉送。我不控制上游回购,因此我无法改变这一点。然而,有时我忘记并尝试常规命令,打乱了我的本地回购,有时不得不重做工作。幸运的是,远程回购是不可渗透的

我找到了通过alias frex、git co for git checkout创建新git子命令的技巧。我可以设置git别名来覆盖现有的标准git命令,比如push和pull吗?我可以只为奇怪的回购而不是我机器上的所有回购这样做吗


如果特殊的命令序列具有等效的git配置,您可能可以检查是否可以在怪异的repo/.git/config文件中设置它们。此链接指定可能的配置选项。
否则,您仍然可以编写一个custom-git.sh脚本并将其别名为git的替代品。在该脚本中,如果正在处理怪异的repo,则执行特殊命令;如果没有,则返回到标准git。

您不能覆盖现有命令,但可以为该repo创建类似git pull的特殊命令。如果您真的想覆盖它,可以为函数创建bash别名。不过,您必须制定一些逻辑来确保这只是一个repo。您可以覆盖yout.bashrc文件中的git pull/push命令,但它将是全局的。如果你只想把它用于特定的回购,最好的办法是增加预拉和预推挂钩。