Git别名 - 多个命令和参数

249

我试图创建一个别名(alias),该别名需要同时使用多个Git命令和位置参数。有关每个部分的Stackoverflow页面,看起来很明显可以同时完成两者,但是我遇到了一些问题。

例如,我想切换到foo分支并执行状态(status)。因此,在我的.gitconfig中,我有:

  [alias] 
     chs = !sh -c 'git checkout $0 && git status'

以下代码无法正常工作。而像这样的代码可以正常工作。

chs = !sh -c 'git checkout $0'

echoes = !sh -c 'echo hi && echo bye'

希望能得到任何有益的见解。


我的别名:git config --global alias.go '!git commit -a && git pull --rebase && git push && git status'。 注意:使用单引号。 - Marcus Becker
此外,您始终可以在“bash”配置中创建别名选项。 - Sławomir Lenart
12个回答

1

这是一个旧帖子,但没有人提供我认为最简单的解决方案。这个适用于我的*nix基础CLI,但你的体验可能会有所不同。

[alias]
    chs = "!git checkout $1; git status"

一个简单的分号(;)就足以运行多个git命令。

0

虽然Lily Ballard提供了一个很好的shell函数答案,但当我们将所有别名参数连接起来时,它看起来更好:

[alias] chs = "!f(){ git checkout \"${@:1}\" && git status; };f"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接