我在基于WordPress的项目上工作,我想在每个新发布的WP版本上修补我的项目。为此,我希望在两次提交或标记之间生成一个补丁。

例如,在我的repo /www/WP中,我这样做:

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

# or

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

转到 /www/WP 为您的 WordPress

我的git项目基于WordPress

git应用命令行不能工作,我想是因为我们在不同的存储库中。

我可以生成一个补丁文件而不提交,只是一个差异,并将其应用到另一个git存储库?


当前回答

请使用此命令。

git diff master..localbranch > file.patch

其他回答

作为补充,为了只为一个特定的提交生成补丁,使用:

git format-patch -1 <sha>

当生成补丁文件时,当你使用git am ${patch-name}时,确保你的其他repo知道它在哪里。

在添加补丁之前,使用git apply——check ${patch-name}确保没有冲突。

您可以应用两条命令

Git diff——补丁> mypatch。Patch //生成补丁 Git应用mypatch。Patch //应用补丁

你甚至可以只对当前所在的子目录打补丁。只要加。

git format-patch -k b365cce8..80a2c18a .

然后你可以应用它们:

git am *.patch

详情请看这个答案

你可以使用git diff来生成一个统一的适合git apply的diff:

git diff tag1..tag2 > mypatch.patch

然后,您可以应用产生的补丁:

git apply mypatch.patch

请使用此命令。

git diff master..localbranch > file.patch