我的工作基于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
git原生语言WordPress/www/myproject
我的git项目基于WordPressgit apply
命令行不起作用,我想是因为我们在不同的存储库中。
我可以生成一个补丁文件而不用提交,只需要一个差分,然后将其应用到另一个git仓库吗?
谢谢你。
6条答案
按热度按时间1sbrub3j1#
你可以只使用
git diff
来产生一个适用于git apply
的统一的diff:然后,可以使用以下命令应用生成的修补程序:
vshtjzan2#
要为多个提交生成补丁,您应该使用
format-patch
git命令,例如:这会将您的提交导出到邮箱格式的补丁文件中。
要为上次提交生成修补程序,请运行:
然后在另一个存储库中通过
am
git命令应用补丁,例如:请参见:
man git-format-patch
和git-am
。fdbelqdn3#
您可以应用两个命令
git diff --patch > mypatch.patch
//生成修补程序'git apply mypatch.patch
//以应用修补程序'uurity8g4#
作为补充,要仅为一个特定提交生成修补程序,请用途:
当生成补丁文件时,请确保在使用
git am ${patch-name}
时其他存储库知道它的位置在添加修补程序之前,请使用
git apply --check ${patch-name}
确保没有冲突。dtcbnfnu5#
你甚至可以只为你当前所在的子目录打补丁,只需要添加
.
然后您可以应用它们:
详情请参见this answer
khbbv19g6#
使用此命令。