切换分支时调用外部命令

时间:2009-09-29 09:41:03

标签: git bash

我想在切换分支后重新启动我的虚拟服务器,并尝试在我的.gitconfig中添加一些别名但是没有让它工作。

co = checkout | !rap

只运行rap,重启脚本。

co = checkout && !rap

和我尝试过的其他一些事情(比如checkout $1)给出了我的“git usage:bla bla”。

2 个答案:

答案 0 :(得分:6)

注意 问题 的正确解决方案可能只是使用post-checkout hook,如hacker's answer

下面是 问题 的可行解决方案。


您可以在别名中使用单个git命令,例如,例如

[alias]
    alias = config --get-regexp ^alias\\.

或者你使用'!'的任何命令前缀,也许使用“sh -c”技巧;然后你必须拼写“git command”,例如

[alias]
    sed = !git ls-files --stage | grep ^100 | awk '{print $4}' | xargs sed
    who = "!sh -c 'git log -1 --pretty=\"format:%an <%ae>\" --author=\"$1\"' -"

(不是alias.sed是最佳解决方案)。


如果您希望“git br <somebranch>”执行“git checkout <somebranch>”,然后执行“rap”,请尝试

[alias]
    br = !sh -c 'git checkout "$0" && rap'

这里&&表示:如果前一个命令成功,请执行下一个命令。无论先前命令的状态如何,都可以使用;来运行命令

顺便说一句,你不是切换分支使用“git checkout <branch>”吗? “git branch <branchname>创建分支,而不检查它。

答案 1 :(得分:3)

我认为,你真正想要的是post-checkout钩子(查看你的.git/hooks/目录和githooks manpage)。