これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド git-interpret-trailers です。
プログラム:
NAME
git-interpret-trailers - 構造化情報をコミットメッセージに追加するのに役立ちます
SYNOPSIS
git 予告編を解釈する [--トリム-空] [(--トレーラー[(=|:) ])...] [ ...]
DESCRIPTION
追加のヘルプ トレイラー RFC 822 電子メール ヘッダーに似た行が末尾にあります。
それ以外の場合は、コミット メッセージの自由形式の部分。
このコマンドは、次のいずれかからいくつかのパッチまたはコミット メッセージを読み取ります。 引数または
いいえの場合は標準入力と指定されている。 次に、このコマンドは渡された引数を適用します
--trailer オプション (存在する場合) を各入力ファイルのコミット メッセージ部分に使用します。 の
結果は標準出力に出力されます。
一部の構成変数は、 --trailer 引数が各構成変数に適用される方法を制御します。
コミットメッセージと、コミットメッセージ内の既存のトレーラーが変更される方法。 彼ら
いくつかのトレーラーを自動的に追加することも可能です。
デフォルトでは、 = or : --trailer を使用して指定された引数は次のようになります
最後のトレーラーに異なる ( 、
) ペア (または既存のトレーラーがない場合)。 のと部品は
先頭と末尾の空白を削除するためにトリミングされ、結果としてトリミングされたと
次のようにメッセージに表示されます。
トークン: 値
つまり、トリミングされたと':' (コロン XNUMX つ) で区切られます。
その後にスペースが XNUMX つ続きます)。
デフォルトでは、新しいトレーラーはすべての既存のトレーラーの最後に表示されます。 もしそこにあるなら
既存のトレーラーがない場合、新しいトレーラーはコミット メッセージ部分の後に表示されます。
出力し、コミットメッセージ部分の末尾にスペースのみの行がない場合は、
新しいトレーラーの前に空白行が XNUMX 行追加されます。
既存のトレーラーは、XNUMX つまたは複数のトレーラーのグループを検索することによって、入力メッセージから抽出されます。
コロンを含む行 (デフォルト)。グループの前に XNUMX つ以上のコロンが続きます。
空の (または空白のみの) 行。 グループはメッセージの最後に存在するか、
で始まる行の前の空白以外の最後の行 ---。 このような XNUMX つのマイナス記号
メッセージのパッチ部分を開始します。
トレーラーを読むとき、トークンや区切り文字の前後に空白が含まれる場合があります。
そしてその値。 トークンと値の中に空白を含めることもできます。
注意してください トレイラー RFC 822 の多くのルールに従っておらず、従うことを意図していません
ヘッダー。 たとえば、行の折りたたみ規則、エンコード規則、および
おそらく他にも多くのルールがあるでしょう。
OPTIONS
--トリム空
もしトレーラーの一部に空白のみが含まれている場合、トレーラー全体は次のようになります。
結果のメッセージから削除されます。 これは既存のトレーラーだけでなく新しいトレーラーにも当てはまります
トレーラー
- トレーラー[(=|:) 】
()を指定してください、 ) 入力にトレーラーとして適用されるペア
メッセージ。 このコマンドの説明を参照してください。
CONFIGURATION 変数
トレーラー.セパレーター
このオプションは、どの文字がトレーラー区切り文字として認識されるかを指定します。 デフォルトでは
の : トレーラーセパレーターとして認識されますが、 = は常に受け付けられます
他の git コマンドとの互換性を保つためのコマンド ライン。
このオプションで指定された最初の文字は、次の場合に使用されるデフォルトの文字になります。
このトレーラーの構成には別の区切り文字が指定されていません。
たとえば、このオプションの値が「%=$」の場合、次の形式を使用する行のみが表示されます。
と含む %, = or $ その後、スペースが考慮されます
トレーラー。 と % がデフォルトの区切り文字として使用されるため、デフォルトでトレーラーが表示されます
以下のように: % (トークンの間には XNUMX つのパーセント記号と XNUMX つのスペースが表示されます)
と値)。
トレーラー。
このオプションは、新しいトレーラーが追加される場所を示します。
これは、デフォルトの end、start、後、または前にすることができます。
end の場合、新しいトレーラーはそれぞれ既存のトレーラーの最後に表示されます。
start の場合、新しいトレーラーはそれぞれ、最後ではなく最初に表示されます。
既存のトレーラー。
後である場合、新しいトレーラーはそれぞれ、最後のトレーラーの直後に表示されます。
同じ。
以前の場合、新しいトレーラーはそれぞれ最初のトレーラーの直前に表示されます。
同じ。
トレーラー.ifexists
このオプションを使用すると、次の場合にどのようなアクションが実行されるかを選択できます。
すでに同じトレーラーが少なくとも XNUMX つありますメッセージの中で。
このオプションの有効な値は次のとおりです: addIfDifferentNeighbor (これがデフォルト)、
addIfDifferent、追加、上書き、または何もしません。
addIfDifferentNeighbor を使用すると、新しいトレーラーは、
同じ ( 、 ) ペアは、新しいトレーラーが配置されるラインの上または下にあります
追加された。
addIfDifferent を使用すると、同じトレーラーがない場合にのみ、新しいトレーラーが追加されます。
( 、 ) ペアはすでにメッセージ内にあります。
add を使用すると、同じ (同じ内容のトレーラーがいくつかある場合でも) 新しいトレーラーが追加されます。 、
) ペアはすでにメッセージ内にあります。
置き換えると、同じ既存のトレーラーが削除され、新しい
トレーラーが追加されます。 削除されたトレーラーが最も近いトレーラーになります(同じものです)
) 新しいものが追加される場所に移動します。
doNothing を使用すると、何も行われません。 新しいトレーラーがある場合でも追加されません。
すでに同じものと一つメッセージの中で。
Trailer.ifmissing
このオプションを使用すると、次の場合にどのようなアクションが実行されるかを選択できます。
同じトレーラーはまだありませんメッセージの中で。
このオプションの有効な値は、add (これがデフォルト) および doNothing です。
addをすると新しいトレーラーが追加されます。
doNothing では何も行われません。
トレーラー。 。鍵
このキーは代わりに使用されますトレーラーの中で。 このキーの最後には、
区切り文字が表示され、その後にスペース文字が表示される場合があります。 デフォルトでは唯一有効な
セパレータは :ただし、これは、trailer.separators 構成変数を使用して変更できます。
区切り文字がある場合は、両方の代わりにキーが使用されます。 そしてその
トレーラーを追加するときのデフォルトの区切り文字。
トレーラー。 。どこ
このオプションは、 トレーラー。 構成変数とそれ
トレーラーのそのオプションで指定された内容を指定された内容でオーバーライドします。 。
トレーラー。 .ifexist
このオプションは、 トレーラー.ifexist 構成変数とそれ
トレーラーのそのオプションで指定された内容を指定された内容でオーバーライドします。 。
トレーラー。 .ifmissing
このオプションは、 Trailer.ifmissing 構成変数と
トレーラーのそのオプションで指定された内容を、指定された内容でオーバーライドします。 。
トレーラー。 。指図
このオプションは、呼び出されるシェル コマンドを指定するために使用できます。
指定されたトレーラーを自動的に追加または変更します。
このオプションを指定すると、あたかも特殊な動作をします。 =
引数はコマンドラインの先頭に追加されます。 とみなされる
先頭と末尾に空白を含む、指定されたコマンドの標準出力
切り取られた。
コマンドに $ARG 文字列が含まれている場合、この文字列は
同じものを持つ既存のトレーラーの一部存在する場合、コマンドの前に
開始されました。
ある場合 = 引数はコマンドラインでも渡されます。
トレーラー。 。指図 が設定されている場合、コマンドはそれぞれに対しても実行されます。
これらの議論。 そしてそのこれらの引数の一部があれば、それは次の目的で使用されます。
コマンド内の $ARG 文字列を置き換えます。
例
· を設定する 符号 トレーラー付き サインオフ者 キーを入力し、これらのトレーラーを XNUMX つ追加します
メッセージに:
$ git config trailer.sign.key "サインオフ者"
$ 猫 msg.txt
テーマ
メッセージ
$猫メッセージ.txt | git replace-trailers --trailer 'sign: アリス[メール保護]>' --trailer 'サイン: ボブ[メール保護]>'
テーマ
メッセージ
承認者: アリス[メール保護]>
承認者: ボブ[メール保護]>
· 最後のコミットをパッチとして抽出し、 Cc フォルダーとその下に によってレビュー そのトレーラー:
$ git フォーマットパッチ -1
0001-foo.パッチ
$ git replace-trailers --trailer 'Cc: アリス[メール保護]>' --trailer 'レビュー者: ボブ[メール保護]>' 0001-foo.patch >0001-bar.patch
· を設定する 符号 「Signed-off-by:」を自動的に追加するコマンドを含むトレーラー
すでに「Signed-off-by:」がない場合にのみ作成者情報を表示し、その方法を示します
作品:
$ git config trailer.sign.key "サインオフ者: "
$ git config Trailer.sign.ifmissing 追加
$ git config Trailer.sign.ifexists doNothing
$ git config trailer.sign.command 'echo "$(git config user.name) <$(git config user.email)>"'
$ git 解釈トレーラー <
> 終了後
承認者: ボブ[メール保護]>
$ git 解釈トレーラー <
> 承認者: アリス[メール保護]>
> 終了後
承認者: アリス[メール保護]>
· を設定する 修正します キーを含むトレーラー # この後にスペースはありません
キャラクターを作成し、それがどのように機能するかを示します。
$ git config trailer.separators ":#"
$ git config trailer.fix.key "修正番号"
$ echo "件名" | git interpre-trailers --trailer fix=42
テーマ
修正#42
· を設定する コミットの件名を表示するコマンドを含むトレーラー
関連し、それがどのように機能するかを示します。
$ git config trailer.see.key "関連項目: "
$ git config trailer.see.ifExists "置換"
$ git config trailer.see.ifMissing "doNothing"
$ git config trailer.see.command "git log -1 --oneline --format=\"%h (%s)\" --abbrev-commit --abbrev=14 \$ARG"
$ git 解釈トレーラー <
> 件名
>
> メッセージ
>
> 参照: HEAD~2
> 終了後
テーマ
メッセージ
関連項目: fe3187489d69c4 (関連コミットの対象)
· 空の値を持ついくつかのトレーラーを含むコミット テンプレートを構成します (表示するには sed を使用します)
トレーラーの末尾にある末尾のスペースはそのままにしておきます)、次に commit-msg を構成します
使用するフック git 予告編を解釈する 空の値を持つトレーラーを削除し、追加するには
a git バージョン トレーラー:
$ sed -e 's/ Z$/ /' >commit_template.txt <
> ***件名***
>
> ***メッセージ***
>
> 修正: Z
>CC:Z
> レビュー者: Z
> 承認者: Z
> 終了後
$ git config commit.template commit_template.txt
$ cat >.git/hooks/commit-msg <
> #!/bin/sh
> git interpre-trailers --trim-empty --trailer "git-version: \$(git description)" "\$1" > "\$1.new"
> mv "\$1.new" "\$1"
> 終了後
$ chmod +x .git/hooks/commit-msg
onworks.net サービスを使用してオンラインで git-interpret-trailers を使用する