如何应用使用git format-patch生成的补丁?

sil*_*rgh 193 git patch

我有2个git本地存储库,它们都指向同一个远程存储库.

在一个git存储库中,如果我这样做git format-patch 1,如何将该补丁应用于其他存储库?

Von*_*onC 283

注意:您可以先预览补丁的功能:

首先是统计数据:

git apply --stat a_file.patch
Run Code Online (Sandbox Code Playgroud)

然后干运行以检测错误:

git apply --check a_file.patch
Run Code Online (Sandbox Code Playgroud)

最后,您可以使用git am应用补丁:它允许您签署已应用的补丁.
这对以后的参考很有用.

git am --signoff < a_file.patch 
Run Code Online (Sandbox Code Playgroud)

请参阅本文中示例:

在您的git日志中,您会发现提交消息包含"Signed-off-by"标记.Github和其他人将读取此标记,以提供有关提交如何在代码中结束的有用信息.

例

  • 自我注意:第200个大答案金徽章. (6认同)
  • `git am &lt; somepatch.patch` 产生“致命:不允许使用空标识名称(对于 &lt;&gt;)”。有人可以向我解释为什么吗? (5认同)

Jef*_*ien 133

git apply name-of-file.patch
Run Code Online (Sandbox Code Playgroud)

  • 这可能没有回答原始的详细问题,但它回答了标题中的问题,这就是我在这个页面上的原因.谢谢! (21认同)
  • 我知道这是一个古老的问题和答案...但我认为有些人理解[git apply和git am之间的区别]可能会有所帮助(/sf/ask/856810811/ -the-差的git-AM-和混帐应用间). (8认同)

Dom*_*ney 37

或者,如果你踢旧学校:

cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这不会创建提交,因此将丢失提交消息和作者信息。 (2认同)
  • 我遇到过一些情况,当“git apply”不起作用时,这会起作用,不知道为什么 (2认同)

Jak*_*ski 21

如果要将其作为提交应用,请使用git am


Eug*_*kov 18

首先,你应该注意和之间的区别git amgit apply

当你使用时,git am你通常想要应用许多补丁.因此应该使用:

git am *.patch
Run Code Online (Sandbox Code Playgroud)

要不就:

git am
Run Code Online (Sandbox Code Playgroud)

Git会自动找到补丁并按顺序应用;-)

UPD您可以
在此处找到如何生成此类修补程序


ice*_*000 12

如果您使用的是JetBrains IDE(如IntelliJ IDEA,Android Studio,PyCharm),您可以将修补程序文件拖放到IDE中,然后会出现一个对话框,显示修补程序的内容.您现在要做的就是单击"Apply patch",然后创建一个提交.


归档时间:

查看次数:

175054 次

最近记录:

6 年,3 月 前