特定のコミットの git パッチを生成する
SHA1コミット番号のリストに対してパッチを作成するスクリプトを書く必要があります。
git format-patch ` を使ってみましたが、そのSHA1以降のコミットごとにパッチが生成されてしまいました。数百のパッチが生成された後、プロセスを終了させなければなりませんでした。
特定のSHA1に対してのみパッチを生成する方法はありますか?
1140
9
試すんだ:
特定のsha1ハッシュから最上位のコミットからパッチを生成する:
headからの最後の10個のパッチを1つのパッチファイルにまとめる:
例えば、コミット1の後にコミットIDが2であったとする:
ここで2と1はSHAハッシュです。
このコマンド(@ Naftuli Tzvi Kay ですでに示唆されているとおり):
HEAD
を特定のハッシュまたは範囲に置き換えます。< / sup>。UNIXメールボックス形式に似た最新のコミット形式のパッチファイルを生成します。
次に、メールボックス形式でパッチファイルを再度適用できます。
参照:
man git-format-patch
。高速でシンプルなソリューション。
(シングルコミット)パッチが特定のコミットの上に確実に適用されるようにしたい場合は、新しいgit 2.9(2016年6月)オプション
git format-patch --base
を使用できます。commit bb52995、[commit 3de651](https:/ githubcom / git /. (Junio C Hamano-
gitster
--[commit 72ce3ff](https://github.com/git/git/commit / 72ce3ff7b51c1e0703f43Git 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/ 8202d12fca5d482640aGit 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特定のコミット(最後のコミットではない)からパスを生成するには:
指定したファイルをdiffするだけで、次のことができます。
特定のSHA1に対してのみパッチを生成する方法は何ですか?
それは非常に簡単です:
オプション1。
git show commitID> myFile.patch
。オプション2。
git commitID〜1。.commitID> myFile.patch
。注:「commitID」を実際のコミットID(SHA1コミットコード)に置き換えます。