我已经尝试了无数种变化:
git config --global alias.gg '!gitk --all &; git gui &'
但它们不起作用,或者仅仅像这个一样显示gitk:
[alias]
gg = !gitk --all& ; git gui&
我很开心尝试让这个工作,这是我想出来的结果:
虽然我没有gitk或git gui在我的环境中测试你的实际命令,但从我的实验中,我建议你尝试:
gg = !sh -c ": ; (gitk --all &) ; (git gui &)"
以下是我在我的电脑上成功实现的一个例子,并附有一些解释...
gg = !sh -c ": ; (qgit &) ; echo b ; echo c"
对于shell来说,":"是一个NOP(空操作),我必须加上这个是因为第一个命令总是被忽略了,所以你可以使用bash - ignore my ignore。例如,当我尝试执行"echo a ; echo b ; echo c"
时,我只会得到b
和c
的输出。
其次,&符号不起作用,除非我把整个子命令放在子shell中。例如,如果你去掉括号,就会得到语法警告。