メモ: git と パッチ

公開日: 2026-02-24 00:50 更新日: 2026-02-24 00:41 469文字 3 min read

クローンを作成するか、テンプレートを使用してリポジトリを作成した後、プライベートリポジトリに設定すると、元のリポジトリの更新を同期するのが難しくなります。本文では、gitを用いてパッチファイルを生成する方法と、パッチファイルを通じて元のリポジトリの更新を同期する方法について説明します。

AIモデル Qwen/Qwen3-8B による翻訳。

原文言語:Simplified Chinese、翻訳先言語:japanese、翻訳時間:2026-05-01 06:13

AI 翻訳は参考に限り、内容の完全な正確性を保証できません。原文をご参照ください。

乱雑に書いた description

リポジトリをクローンしたりテンプレートを使用して作成した後、プライベートリポジトリに設定してしまうと、元リポジトリの更新を同期するのが難しくなります。

この記事では、gitを使用してパッチファイルを生成し、パッチファイルを通じて元リポジトリの更新を同期する方法について紹介します。

パッチファイルの生成

最近のコミットのパッチを生成する

git format-patch HEAD~

# 或
git format-patch -1

指定されたコミット(例: abc123)のパッチを生成する

git format-patch -1 abc123

複数のコミットのパッチファイルを生成する

# 生成最近 N 个提交的 patch(例如最近3次)
git format-patch -3

# 生成两个提交之间的所有 patch(不包含起始提交)
git format-patch <start-commit>..<end-commit>
# 示例:生成从 abc123 到当前 HEAD 的所有提交
git format-patch abc123..HEAD

パッチファイルの適用

メタデータを保持する

git am *.patch

エラーが発生した場合:

error: patch failed: ...
error: ... could not apply patch ...
......
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Applying: v3.0.8 (#132)
Patch failed at 0001 v3.0.8 (#132)
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

エラーの場合は、-3パラメータを追加して手動でコンフリクトを解決できます。

git am --abort
git am -3 *.patch

コンフリクトを解決した後、パッチファイルの適用を続行してください。

git am --continue

メタデータを保持しない

git apply *.patch

エラーが発生した場合は、手動でコンフリクトを解決してください。

git apply --3way *.patch

気に入ったならばコメントを残してくださいね~