如何在真正的git命令之前重定向/捕获“ git”命令并执行一些操作?

时间:2018-12-14 21:42:56

标签: bash git shell zsh

实际上我正在编写链接到我的zshrc中的此函数:

function mgit {
  string='github'
  remote=$(git remote -v)
  if [[ ${remote} == *${string}* ]]; then
    git config --global user.name "name1"
    git config --global user.email "email1@test.com"
  else
    git config --global user.name "name2"
    git config --global user.email "email2@test.de"
  fi
  git "$@"
}

如果我现在执行mgit --version而不是git --version,则此方法很好。

但是有没有办法捕获真正的git命令并执行此功能?
因为现在我不能使用别名了ga代表git add . ...
那么是否可以使用docker之类的所有命令?

1 个答案:

答案 0 :(得分:6)

是的。只需调用函数git并使用command git来调用“实数” git

git() {
  echo "Do some things"
  command git "$@"
}

示例:

% git --version
Do some things
git version 2.19.2