4

GitHubプルリクエストの編集に関する私の回答に対するフォローアップの質問では、パッチファイルを適用する前に直接編集すると、元の作成者の作業の功績が認められるかどうかが尋ねられました。元の質問の一部ではなかったので、ここで新しい質問として質問します。

4

1 に答える 1

6

TL; DR

Gitは、作成者をパッチの作成者に帰属させ、現在のコミッターには帰属させません。ただし、この動作をオーバーライドできます。

Gitがメールボックスファイルのパッチを処理する方法

このgit amコマンドは、メールボックスに保存されている一連のパッチを処理します。GitHubのプルリクエストの場合、各パッチファイルはmbox形式で保存された一連の差分です。GitはメールボックスのFrom行を解析して、コミットごとにGIT_AUTHOR_NAMEとGIT_AUTHOR_EMAILの値を決定します。

これが意味すること

個々のdiffハンクを手動で編集した場合でも、Gitは通常、Bobを作成者として扱い、あなたをコミッターとして扱います。これは一般的にRightThing™です。

しかし、それは確かに悪いカルマですが、技術的な観点からは、おそらくコミットからボブを完全に編集することができます。結局のところ、これは自分に合わせて変更できる単なるテキストファイルであり、メールボックスのFrom行を変更すると、Gitは各パッチを適用するときに、新しい値を使用して作成者フィールドに入力します。

これを行うことには確かに道徳的および法的な意味がありますが、問題は帰属についてでした。Gitはデフォルトでオーサーシップを適切に属性付けますが、制御は最終的にはあなた次第です。

于 2012-06-16T20:58:03.093 に答える