「git pull」を実行すると、「git pull の代わりに git xpull を使用してください」というエコー ステートメントで終了するように、.gitconfig ファイルに変更を加えたいと思います。xpull は私のエイリアスですか?
または、(.gitconfig ファイルの代わりに) ローカル マシンのどこでも可能ですか?
「git pull」を実行すると、「git pull の代わりに git xpull を使用してください」というエコー ステートメントで終了するように、.gitconfig ファイルに変更を加えたいと思います。xpull は私のエイリアスですか?
または、(.gitconfig ファイルの代わりに) ローカル マシンのどこでも可能ですか?
残念ながら、git 自体でやりたいことができるとは思えません。git-config(1) マニュアルページには次のように書かれています:
スクリプトの使用に関する混乱とトラブルを避けるために、既存の git コマンドを隠すエイリアスは無視されます。
つまり、 xpullの git エイリアスを自由に作成できますが、プル自体を実際にオーバーライドまたはラップすることはできません。ただし、git への呼び出しをラップするシェル関数を作成することはできます。
git へのすべての呼び出しをインターセプトするシェル関数で git をラップし、キーワード「pull」の存在を確認し、代わりに「xpull」を使用するようにコマンド ラインを書き直すことができます。このラッパー関数は特に堅牢ではありませんが、カジュアルなテストでは確かに機能しました。
git () {
if [[ "$*" =~ $(echo '\bpull\b') ]]; then
git xpull
else
command git xpull "${@/pull/}"
fi
}
必要に応じて、 xpullの呼び出しをエコーとゼロ以外の戻りステータスに置き換えることもできますが、動作を透過的にラップする方が賢明なようです。あなたのマイレージは異なる場合があります。
短いエイリアスを使用するのはどうですか? 他のコマンドの時間も節約できます
[alias]
st = status
pl = pull --no-edit
スクリプトを に配置$SOMEDIR/git-pull
し$SOMEDIR
ます。 は にあり$PATH
、次に:
chmod -x /usr/lib/git-core/git-pull
または、git-pull
実行可能ファイルがシステム上にある場所。