1

「git pull」を実行すると、「git pull の代わりに git xpull を使用してください」というエコー ステートメントで終了するように、.gitconfig ファイルに変更を加えたいと思います。xpull は私のエイリアスですか?

または、(.gitconfig ファイルの代わりに) ローカル マシンのどこでも可能ですか?

4

3 に答える 3

1

Git-Alias では不可能

残念ながら、git 自体でやりたいことができるとは思えません。git-config(1) マニュアルページには次のように書かれています:

スクリプトの使用に関する混乱とトラブルを避けるために、既存の git コマンドを隠すエイリアスは無視されます。

つまり、 xpullの git エイリアスを自由に作成できますが、プル自体を実際にオーバーライドまたはラップすることはできません。ただし、git への呼び出しをラップするシェル関数を作成することはできます。

Git をシェル関数でラップする

git へのすべての呼び出しをインターセプトするシェル関数で git をラップし、キーワード「pull」の存在を確認し、代わりに「xpull」を使用するようにコマンド ラインを書き直すことができます。このラッパー関数は特に堅牢ではありませんが、カジュアルなテストでは確かに機能しました。

git () {
    if [[ "$*" =~ $(echo '\bpull\b') ]]; then
        git xpull
    else
        command git xpull "${@/pull/}"
    fi
 }

必要に応じて、 xpullの呼び出しをエコーとゼロ以外の戻りステータスに置き換えることもできますが、動作を透過的にラップする方が賢明なようです。あなたのマイレージは異なる場合があります。

于 2012-07-19T07:43:49.470 に答える
0

短いエイリアスを使用するのはどうですか? 他のコマンドの時間も節約できます

[alias]
    st = status
    pl = pull --no-edit
于 2014-04-30T21:44:16.920 に答える
0

スクリプトを に配置$SOMEDIR/git-pull$SOMEDIRます。 は にあり$PATH、次に:

chmod -x /usr/lib/git-core/git-pull

または、git-pull実行可能ファイルがシステム上にある場所。

于 2012-07-19T07:30:09.783 に答える