是否可以扩展(覆盖)git命令?

时间:2017-07-06 04:30:41

标签: git

是否可以在调用其别名之前覆盖git命令或运行另一个git命令。像这样:git checkout . - > git stash && git stash apply && git checkout .。在意外结账后我想到了它

2 个答案:

答案 0 :(得分:0)

你不能通过git别名覆盖git命令。

你可以做一个名为git的bash脚本,你可以先把它放在你的$ PATH中 或者,您可以在.bashrc中定义一个名为git的函数。

该脚本将查找checkout作为第一个参数,并将应用您的命令序列。

查看example here

function git {
  if [[ "$1" == "checkout" && "$@" != *"--help"* ]]; then
    shift 1
    command git mycheckout "$@"
  else
    command git "$@"
  fi
}

在这种情况下,您将在脚本调用git-mycheckout中实现结帐:任何名为git-xxx的脚本都可以通过git调用git xxx

答案 1 :(得分:0)

我为结帐添加了一个快捷方式:alias.co = checkout,我现在习惯于输入它,当我使用没有快捷方式的机器时,我会感到惊讶。

您可以在这样的快捷方式上插入命令。

关于git stash的一个词:创建这种藏匿的另一种方式:

git stash store $(git stash create)

这样做的好处是不会修改磁盘上的文件(并且可能会触发一些观察文件修改的动作......)

store

中提及了creategit help stash