我有两个本地git存储库,它们都指向相同远程存储库。
在一个git存储库中,如果我执行git format-patch 1,我如何将该补丁应用到另一个存储库?
git format-patch 1
git apply name-of-file.patch
或者,如果你想用老办法:
cd /path/to/other/repository patch -p1 < 0001-whatever.patch
注意:你可以先预览你的补丁会做什么:
首先是统计数据:
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和其他人读取,以提供关于提交如何在代码中结束的有用信息。
如果你想应用它作为提交,使用git是。
如果你使用的是JetBrains IDE(如IntelliJ IDEA, Android Studio, PyCharm),你可以拖动补丁文件并将其放入IDE中,然后会出现一个对话框,显示补丁的内容。你现在所要做的就是点击“应用补丁”,一个提交将被创建。
首先,你应该注意git am和git apply之间的区别
git apply
当你使用git am时,你通常想要应用许多补丁。因此应该使用:
git am *.patch
或者是:
Git会自动找到补丁并按顺序应用它们;-)
另一种方法是将一个本地存储库作为远程存储库添加到另一个本地存储库。
$ cd repo1 $ git remote add repo2 file:///path/to/repo2/.git
这样你就可以获取分支,重构本地分支,或者从一个本地回购选择提交到另一个。
$ git remote update repo2 $ git fetch repo2 branch:branch-from-repo2 $ git log branch-from-repo2