web-dev-qa-db-ja.com

gitリポジトリからパッチまたはdiffファイルを作成し、別の異なるgitリポジトリに適用します

WordPressベースのプロジェクトに取り組んでおり、WPの新しいリリースバージョンごとにプロジェクトにパッチを適用したいと考えています。このため、2つのコミットまたはタグの間にパッチを生成します。

たとえば、私のレポ/www/WPでこれを行います:

$git patch-format com1..com2 --stdout > ~/patchs/mypatch.patch

または

$git patch-format tag1..tag2 --stdout > ~/patchs/mypatch.patch

/www/WP git natif WordPress

/www/myproject私のgitプロジェクトWordPressベース

git applyコマンドラインは機能しません。異なるリポジトリにいるからだと思います。

コミットせずに差分だけでパッチファイルを生成し、別のgitリポジトリに適用できますか?

よろしくお願いします。

96
zatamine

git diffを使用するだけで、git applyに適した nified diff を生成できます。

git diff tag1..tag2 > mypatch.patch

次に、結果のパッチを次の方法で適用できます。

git apply mypatch.patch
158

複数のコミット用のパッチを作成するには、format-patch gitコマンドを使用する必要があります。

git format-patch -k --stdout R1..R2

これにより、コミットがメールボックス形式のパッチファイルにエクスポートされます。

最後のコミット用のパッチを生成するには、次を実行します:

git format-patch -k --stdout HEAD^

次に、別のリポジトリでam gitコマンドを使用してパッチを適用します。

git am -3 -k file.patch

man git-format-patch および git-am を参照してください。

35
kenorb