代码之家  ›  专栏  ›  技术社区  ›  Jacob Rask

切换分支时调用外部命令

  •  2
  • Jacob Rask  · 技术社区  · 15 年前

    我想在切换分支后重新启动虚拟服务器,并尝试在 .gitconfig 但没有成功。

    co = checkout | !rap
    

    只运行rap,即重新启动脚本。

    co = checkout && !rap
    

    还有我试过的其他东西(比如 checkout $1 )给出了我的“git用法:bla bla”。

    2 回复  |  直到 13 年前
        1
  •  3
  •   Michael Krelin - hacker    15 年前

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

        2
  •  6
  •   Community Maksym Gontar    7 年前

    注释 正确的解决方案 问题 可以简单地使用 post-checkout hook ,写在 hacker's answer .

    下面是您的 问题 .


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

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

    或者使用任何带有“!”的命令前缀,可能使用“ sh -c “trick;然后您必须拼写”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> 创造 分支,不签出。