40

複数のコマンドを実行するために Git エイリアスを作成したいのですが、その方法に関するドキュメントが見つかりません。

  1. 複数のコマンドを含む Git エイリアスの構文は何ですか?
  2. これはどこに文書化されていますか?

「man git-config」から

   alias.*

git(1) コマンド ラッパーのコマンド エイリアス - たとえば、「alias.last = cat-file commit HEAD」を定義した後、呼び出し「git last」は「git cat-file commit HEAD」と同等です。スクリプトの使用に関する混乱とトラブルを避けるために、既存の Git コマンドを隠すエイリアスは無視されます。引数はスペースで分割され、通常のシェルの引用とエスケープがサポートされています。引用符のペアとバックスラッシュを使用してそれらを引用できます。

エイリアス展開の前に感嘆符が付いている場合は、シェル コマンドとして扱われます。たとえば、「alias.new = !gitk --all --not ORIG_HEAD」を定義すると、「git new」という呼び出しは、シェル コマンド「gitk --all --not ORIG_HEAD」を実行することと同じになります。シェル コマンドはリポジトリの最上位ディレクトリから実行されることに注意してください。これは、必ずしも現在のディレクトリであるとは限りません。GIT_PREFIX は、元の現在のディレクトリから git rev-parse --show-prefix を実行することによって返されるように設定されます。git-rev-parse(1) を参照してください。

4

4 に答える 4

45
$ git config alias.q '!echo a; echo b'

$ git q

出力:

a
b

man git-configこれは(基本的に)以下に文書化されていると思いますalias.*

通常のエイリアスとは異なり、git コマンドには git を含める必要があることに注意してください。これは、git コマンドとしてではなく、シェル コマンドとして扱われることが原因です (質問で引用されているマンページを参照してください)。たとえば、連鎖する

git init

git commit --allow-empty -m "empty initial commit"

作成する必要があります

"!git init; git commit --allow-empty -m \"empty initial commit\""

エイリアス。

于 2013-09-17T22:14:00.900 に答える
25

エイリアスに複数のコマンドを追加するには、コマンドがecho aand echo b( aandではなく) であるとします。bq

コマンドラインから:
git config alias.q '!echo a; echo b'

構成ファイルで直接:

[alias]
    q = "!echo a; echo b"

より複雑な場合は、シェル関数を定義して呼び出します。
'!f() { echo a ; echo b ; }; f'

コマンドにパラメーターを渡す方法については、次を参照してください:
位置パラメーターを使用した
Git エイリアス Git エイリアス - 複数のコマンドとパラメーター

Jonathan Wakelyのコメントに基づく

于 2014-02-07T14:57:56.203 に答える