〜/ .gitconfigでGitエイリアスを使用して、bash関数が定義されている場合はbash関数を呼び出し、そうでなければ通常のgit checkout
を呼び出します。Gitエイリアスを使用してBash関数を起動する方法
これは私が考案したものです:
cat ~/.gitconfig
...
[alias]
...
co = !(compgen -A function vxzExecuteGitCheckout >/dev/null && vxzExecuteGitCheckout) || git checkout
問題は、Gitは(私の場合dash
をあることを起こる)/ bin/shを使用しますと、それはbash
組み込みであるので、それはcompgen
にbarfsということです。
このコマンドを実行するには、Gitでbash
を使用していることを確認してください。
vxzExecuteGitCheckout()
は、〜/ .bashrcに含まれていないファイルに定義されています。
git co -b param1 param2 ...
を使用する場合、上記の別名定義は-b param1 param2
〜git checkout
になります。このBash関数が見つからない場合は、明示的に
おかげで、。これを使用しました:
'co =!bash -c '(compgen -A function vxzExecuteGitCheckout>/dev/null && vxzExecuteGitCheckout" $ @ ")|| git checkout "$ @" '-' 'git co'コマンドがなければ全く何もしていないように見えるので、ダッシュを後に付けることの重要性を説明したいかもしれません。 –
私は最終的に、呼び出された関数vxz ...が働いているシェルの環境変数を変更したかったので、このアプローチを捨てました。しかし、この関数はそれ自身の新しいシェルで呼び出されるので、環境変数の変更はシェルを呼び出す。 –
@gurjeet:あなたが解決しようとしている問題を知っている可能性はありますか?たぶんそこに別の方法があるかもしれません – knittl