同じリモートリポジトリを指す2つのgitローカルリポジトリがあります。
あるgitリポジトリでgit format-patch 1
を実行すると、そのパッチを他のリポジトリにどのように適用できますか?
注:まず、パッチの動作をプレビューできます。
最初の統計:
git apply --stat a_file.patch
次に、エラーを検出するためのドライラン:
git apply --check a_file.patch
最後に、git am
を使用して、パッチをコミットとして適用できます。これにより、適用されたパッチをサインオフできます。
これは後で参照するのに役立ちます。
git am --signoff < a_file.patch
この記事の例 を参照してください:
Gitログで、コミットメッセージに「Signed-off-by」タグが含まれていることがわかります。このタグはGithubなどによって読み取られ、コミットがコード内でどのように終了したかに関する有用な情報を提供します。
git apply name-of-file.patch
または、古い学校を蹴っている場合:
cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
コミットとして適用する場合、 git am を使用します
まず、 differencegit am
とgit apply
の間のメモを取る必要があります
git am
を使用している場合、通常は多くのパッチを適用したいです。したがって、使用する必要があります:
git am *.patch
あるいは単に:
git am
Gitはパッチを自動的に検出し、順番に適用します;-)
UPD
ここ このようなパッチを生成する方法を見つけることができます
JetBrains IDE(IntelliJ IDEA、Android Studio、PyCharmなど)を使用している場合、パッチファイルをドラッグしてIDE内にドロップすると、ダイアログが表示されます。パッチの内容を表示します。あとは、「パッチを適用」をクリックするだけで、コミットが作成されます。