SHA1コミット番号のリストに対してパッチを作成するスクリプトを書く必要があります。
git format-patch
特定のSHA1に対してのみパッチを生成する方法はありますか?
試すんだ:
git format-patch -1
または
git format-patch -1 HEAD
上のリンクにあるドキュメントによると、-1
フラグはパッチに含めるコミット数を git に伝えます;
-<n>; >;  ; 最上位の
コミットからパッチを準備する。
コマンドでパッチを適用します:
git am < file.patch
このコマンド(@ Naftuli Tzvi Kay ですでに示唆されているとおり):
git format-patch -1 HEAD
HEAD
を特定のハッシュまたは範囲に置き換えます。< / sup>。
UNIXメールボックス形式に似た最新のコミット形式のパッチファイルを生成します。
-< n>
-最上部のパッチを準備< n>コミット。
次に、メールボックス形式でパッチファイルを再度適用できます。
git am -3k 001*.patch
(シングルコミット)パッチが特定のコミットの上に確実に適用されるようにしたい場合は、新しいgit 2.9(2016年6月)オプション git format-patch --base
を使用できます。
git format-patch --base=COMMIT_VALUE~ -M -C COMMIT_VALUE~..COMMIT_VALUE
# or
git format-patch --base=auto -M -C COMMIT_VALUE~..COMMIT_VALUE
# or
git config format.useAutoBase true
git format-patch -M -C COMMIT_VALUE~..COMMIT_VALUE
commit bb52995、[commit 3de651](https:/ githubcom / git /.
(Junio C Hamano-gitster
--[commit 72ce3ff](https://github.com/git/git/commit / 72ce3ff7b51c1e0703f43
format-patch
: '--base
'オプションを追加して、ベースツリー情報を記録します。
メンテナまたはサードパーティのテスターは、正確なベースツリーを知りたい場合があります。 パッチシリーズが適用されます。 git format-patchに「--base」オプションを教える。 ベースツリー情報を記録し、最初の最後に追加します。 メッセージ(カバーレターまたはシリーズの最初のパッチ)。
ベースツリー情報は、よく知られている「ベースコミット」で構成されています。 プロジェクト履歴の安定した部分の一部であるコミット。 それ以外の場合は、ゼロ以上の「前提条件パッチ」で動作します。 まだ「ベースコミット」の一部ではない飛行中の有名なパッチ。 これは、トポロジー順に「ベースコミット」の上に適用する必要があります。 パッチを適用する前に。
「base commit」は「
base-commit:
」として表示され、その後に40-hexが続きます。 コミットオブジェクト名。 「前提条件パッチ」は「「前提条件パッチID:」」として表示され、その後に40ヘックスの「パッチID」が続きます。これは、「git patch-id --stable」にパッチを渡すことで取得できます。
"コマンド。
Git 2.23(2019年第3四半期)はそれを改善します。これは、「 `format-patch
」の「--base
」オプションが不安定な方法で前提条件パッチの「patch-ids」を計算したためです。 「git patch-id --stable」と互換性のある方法。
commit a8f6855、[commit 6f93d26](https:/github.com.
(Junio C Hamano-gitster
--[commit 8202d12](https://github.com/git/git/commit/ 8202d12fca5d482640a
format-patch
:--base patch-id
出力を安定させます。
ハンクを処理するたびにコンテキストをフラッシュしていませんでした。
diff.c
のpatch-id
生成コードですが、私たちがそれを行っていたときです。 「patch-id」ツールを使用して「安定した」パッチIDを生成しました。
patch-id.c
からdiff.c
に同様のロジックを移植して、コマンドの 'format-patch --base =
'タイプのパッチIDを生成するときに同じハッシュを取得できるようにします。呼び出し。
Git 2.24(2019年第4四半期)以前は、「 git format-patch -o< outdir>
」は「mkdir -p< outdir>」ではなく「mkdir< outdir>」に相当しました。
」、修正中です。
commit edefc31(2019年10月11日)[Bertith Wesarg( bertwesarg
)]を参照)].
(Junio C Hamano-gitster
--[commit f1afbb0](https://github.com/git/git/commit / f1afbb063ff86e40caee314a
format-patch
:出力ディレクトリの主要なコンポーネントを作成します。Signed-off-by:Bert Wesarg< / sup>。
'git format-patch -o< outdir>'は、修正中の「mkdir< outdir>」と同等でした。 「mkdir -p< outdir>」ではありません。
セキュリティに影響を与える可能性のある主要なディレクトリでの「adjust_shared_perm」の使用は避けてください。 「git init」のように「config.sharedRepository」を一時的に無効にすることで達成されます。