我有2个git本地存储库,它们都指向同一个远程存储库。
在一个git存储库中,如果我git format-patch 1
,我该如何将该补丁应用到其他存储库?
答案 0 :(得分:235)
注意:您可以先预览补丁的功能:
首先是统计数据:
git apply --stat a_file.patch
然后进行干运行以检测错误:
git apply --check a_file.patch
最后,您可以使用 git am
将修补程序应用为提交:它允许您注销已应用的修补程序。
这对以后的参考很有用。
git am --signoff < a_file.patch
在你的git日志中,你会发现提交消息包含一个“Signed-off-by”标记。 Github和其他人将读取此标记,以提供有关提交如何在代码中结束的有用信息。
答案 1 :(得分:114)
git apply name-of-file.patch
答案 2 :(得分:30)
或者,如果你踢它上学:
cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
答案 3 :(得分:19)
如果您想将作为提交应用,请使用git am
答案 4 :(得分:14)
首先,您应该在git am
和git apply
之间记下有关difference的注释
在使用git am
时,您通常希望应用许多补丁。因此应使用:
git am *.patch
或者只是:
git am
Git会自动找到补丁并按顺序应用它们;-)
UPD
Here,您可以找到如何生成此类补丁
答案 5 :(得分:11)
如果您使用的是JetBrains IDE(如IntelliJ IDEA,Android Studio,PyCharm),您可以将修补程序文件拖放到IDE中,然后会出现一个对话框,显示修补程序的内容。您现在要做的就是单击“Apply patch”,然后创建一个提交。