开发者

How to launch a Bash function using Git alias

开发者 https://www.devze.com 2023-03-15 22:57 出处:网络
I want to use a Git alias in ~/.gitconfig so that it calls a bash function, if it is defined, otherwise call the regular git checkout.

I want to use a Git alias in ~/.gitconfig so that it calls a bash function, if it is defined, otherwise call the regular git checkout.

This is what I have devised:

cat ~/.gitconfig
...
[alias]
...
    co = !(compgen -开发者_JAVA技巧A function vxzExecuteGitCheckout >/dev/null && vxzExecuteGitCheckout ) || git checkout

The problem is that Git uses /bin/sh (which happens to be dash in my case) and it barfs on compgen since it is a bash builtin.

Any way making sure that Git uses bash to execute this command?

Note that vxzExecuteGitCheckout() is defined in a file which is not included in ~/.bashrc, yet.

Another question is, if I were to use git co -b param1 param2 ..., would the above alias definition pass on the -b param1 param2 to git checkout if this Bash function is not found?


use bash explicitely:

co = !bash -c '( compgen -A function vxzExecuteGitCheckout >/dev/null && vxzExecuteGitCheckout ) || git checkout' -

another possibility would be to write a shell script with the correct shebang line #!/bin/bash and call that script for alias.co (see the question How to embed bash script directly inside a git alias)

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号