git - 切换分支时调用外部命令

标签 git bash

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

co = checkout | !rap

只运行 rap,重启脚本。

co = checkout && !rap

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

最佳答案

请注意,您的问题 的正确解决方案可能只是使用 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>创建 分支,但未将其 checkout 。

关于git - 切换分支时调用外部命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1491556/

相关文章:

git - 使用 git rebase -i 重新排序提交时出错

Git Azure 部署缺少内容目录中的文件(MVC4 项目)

Windows - Git Bash 中的 cp 文件

bash - 使用 bash 将目录中的所有文件合并为一个

linux - 使用 Linux bash 脚本语言获取目录上的排序文件列表

git - 如何在 git 中使用 gitignore 命令

linux - 如何使用 git 提取提交者的电子邮件?

linux - 如何在 shell 脚本中以非 root 用户身份登录(同时使用用户名和密码)?

arrays - 将多行字符串读入数组时出错?

linux - 如何使用shell解析命令的输出