web-dev-qa-db-ja.com

git format-patchで生成されたパッチを適用する方法は?

同じリモートリポジトリを指す2つのgitローカルリポジトリがあります。

あるgitリポジトリでgit format-patch 1を実行すると、そのパッチを他のリポジトリにどのように適用できますか?

164
silverburgh

注:まず、パッチの動作をプレビューできます。

最初の統計:

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などによって読み取られ、コミットがコード内でどのように終了したかに関する有用な情報を提供します。

Example

239
VonC
git apply name-of-file.patch
116
Jeff Dallien

または、古い学校を蹴っている場合:

cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
30
Dominic Cooney

コミットとして適用する場合、 git am を使用します

19
Jakub Narębski

まず、 differencegit amgit applyの間のメモを取る必要があります

git amを使用している場合、通常は多くのパッチを適用したいです。したがって、使用する必要があります:

git am *.patch

あるいは単に:

git am

Gitはパッチを自動的に検出し、順番に適用します;-)

UPD
ここ このようなパッチを生成する方法を見つけることができます

15
Eugen Konkov

JetBrains IDE(IntelliJ IDEA、Android St​​udio、PyCharmなど)を使用している場合、パッチファイルをドラッグしてIDE内にドロップすると、ダイアログが表示されます。パッチの内容を表示します。あとは、「パッチを適用」をクリックするだけで、コミットが作成されます。

11
ice1000