Create patch or diff file from git repository and

2019-03-07 21:30发布

问题:

I work on WordPress based project and I want to patch my project at each new release version of WP. For this, I want generate a patch between two commits or tags.

For example, in my repo /www/WP I do this :

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

Or

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

/www/WP git natif WordPress

/www/myproject My git project WordPress based

The git apply command line doesn't work, I think because we are in different repositories.

Can I generate a patch file without a commit, just a differential and apply it to another git repository ?

Thanks advance.

回答1:

You can just use git diff to produce a unified diff suitable for git apply:

git diff tag1..tag2 > mypatch.patch

You can then apply the resulting patch with:

git apply mypatch.patch


回答2:

To produce patch for several commits, you should use format-patch git command, e.g.

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

This will export your commits into patch file in mailbox format.

To generate patch for the last commit, run:

git format-patch -k --stdout HEAD^

Then in another repository apply the patch by am git command, e.g.

git am -3 -k file.patch

See: man git-format-patch and git-am.