切换分支时调用外部命令

Jac*_*ask 2 git bash

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

co = checkout | !rap
Run Code Online (Sandbox Code Playgroud)

只运行说唱,重启脚本.

co = checkout && !rap
Run Code Online (Sandbox Code Playgroud)

和我尝试的其他一些事情(比如checkout $1)给出了我的"git用法:bla bla".

Jak*_*ski 6

请注意,正确解决问题的方法可能就是使用post-checkout hook,就像黑客的回答一样.

下面有你的问题的可行解决方案.


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

[alias]
    alias = config --get-regexp ^alias\\.
Run Code Online (Sandbox Code Playgroud)

或者你使用'!'的任何命令 前缀,也许使用" 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\"' -"
Run Code Online (Sandbox Code Playgroud)

(这不是alias.sed最好的解决方案).


如果你想要" git br <somebranch>"做" git checkout <somebranch>",那么" rap",试试吧

[alias]
    br = !sh -c 'git checkout "$0" && rap'
Run Code Online (Sandbox Code Playgroud)

&&意味着:如果前一个命令成功,请执行下一个命令.;无论先前命令的状态如何,您都可以使用命令来运行命令

BTW你不用" "来切换分支git checkout <branch>吗?" git branch <branchname>" 创建分支,而不检查它.