当前位置: 首页 > 知识库问答 >
问题:

从git存储库创建补丁或差异文件,并将其应用于另一个不同的git存储库

高承望
2023-03-14

我从事基于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/WPgit-natif-WordPress

我的git项目基于WordPress

我认为git-apply命令行不起作用,因为我们在不同的存储库中。

我可以在没有提交的情况下生成补丁文件,只是一个差异并将其应用于另一个git存储库吗?

谢谢你。


共有3个答案

傅朗
2023-03-14

可以应用两个命令

  1. git diff--补丁
卞轶
2023-03-14

要为多个提交生成补丁,您应该使用format-patchgit命令,例如。

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

这将以邮箱格式将提交导出到修补程序文件中。

要为最后一次提交生成补丁,请运行:

git format-patch -k --stdout HEAD~1

然后在另一个存储库中通过git命令应用补丁,例如。

git am -3 -k file.patch

请参阅:man-git格式补丁和git-am。

祁永嘉
2023-03-14

您只需使用git diff来生成适用于git apply的统一diff:

git diff tag1..tag2 > mypatch.patch

然后,您可以使用以下方式应用生成的补丁:

git apply mypatch.patch
 类似资料:
  • 主要内容:创建一个远程存储库在本章中,我们将看到如何创建一个远程Git仓库; 我们需要一个远程Git仓库来执行团队协作。这一篇文章很重要,直接影响到后面的章节的学习。所以,希望大家可先耐心地看完本章内容,并按本章一步步的操作。 创建一个远程存储库 我们将演示在 http://git.oschina.net/ 软件项目的托管平台上创建和初始化一个新的存储库。 注:你也可以使用 GitHub (http://github.com

  • 我想在我新创建的GitHub存储库中添加一个新文件夹,而不安装用于(Mac、Linux和Windows)的Git设置。有可能这样做吗? 当我在不同的系统/机器上工作时,我不能让Git一直陪伴在我身边。我知道如何在上的存储库中直接添加文件。我们也可以创建一个文件夹吗?

  • 我正在尝试运行批处理文件, 它将转到祖父母文件夹,并对其所有子存储库目录执行git pull。出于某种原因,这是行不通的。我怎样才能让它正常工作? 参考以下内容: 如何git拉多个repos上的窗口? 使用Windows 10

  • 问题内容: 上周,我创建了一个Github存储库,却忘记选择该存储库的许可证。现在已经有3个大型提交。 我问了3个贡献者是否还可以,是否删除了回购文件,然后使用相同的名称再次创建它,这一次在创建回购文件时选择了许可证,他们对此有何看法。 题 有没有一种方法可以将提交提交到新的存储库中(这次第一次提交是LICENSE文件),并且仍然保留提交元信息? 问题答案: 有没有一种方法可以将提交提交到新的存储

  • 我学习了关于GIT的vogella教程,第17节练习“使用(本地)远程存储库”。在执行步骤17.3时,我得到了这个错误: 执行的步骤是: 原因会是什么呢?

  • 我有一本书。由同事创建的diff文件,并希望将该diff文件中列出的更改应用于同一存储库的本地分支。我无法访问该员工的pc或用于生成此差异文件的分支。 显然,我可以逐行重新键入所有内容,但我不想让系统受到人为错误的影响。最简单的方法是什么?