3

〜/ .gitconfigでGitエイリアスを使用して、定義されている場合はbash関数を呼び出し、そうでない場合は通常のを呼び出しますgit checkout

これは私が考案したものです:

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

dash問題は、Gitが/ bin / sh(私の場合はたまたまそうです)を使用しcompgen、組み込みであるためにバーフオンすることですbash

Gitがbashこのコマンドを実行するために使用することを確認する方法はありますか?

vxzExecuteGitCheckout()まだ〜/.bashrcに含まれていないファイルで定義されていることに注意してください。

もう1つの質問は、を使用する場合、このBash関数が見つからない場合git co -b param1 param2 ...、上記のエイリアス定義はに渡されますか?-b param1 param2git checkout

4

1 に答える 1

4

bash明示的に使用します:

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

別の可能性は、正しいシバン行でシェルスクリプトを作成し、#!/bin/bashそのスクリプトを呼び出すことですalias.co(質問を参照してくださいgitエイリアス内にbashスクリプトを直接埋め込む方法

于 2011-06-26T11:20:30.830 に答える