Git 格式补丁与 git log -p

标签 git patch git-log git-patch

我想检索作为补丁的提交列表,然后尝试将它们应用到另一个存储库,在该存储库中我存储了一个非常接近的项目,该项目与我想要检索补丁的项目相距甚远:我如何在一个命令中检索所有的补丁? git format-patch 和 git log -p 之间的最佳方法(以及区别)是什么?

最佳答案

git log -p 以相反的时间顺序向您显示更改(最近的在前)。这通常不利于生成补丁,因为您希望从最早的更改而不是最近的更改开始打补丁。

git format-patch 以正确的方向生成补丁(补丁 0001 将是最早的更改),它保存补丁一个提交每个文件和将它们格式化为适合在接收方使用 git am 的电子邮件消息。

因此对于您想要的,在一个存储库上运行 git format-patch 然后在目标存储库上运行 git am 可能是最有意义的:

cat *.patch | git am

关于Git 格式补丁与 git log -p,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14375938/

相关文章:

git - git commit --cleanup=whitespace 到底做了什么?

git - 从服务器导入更改后 GIT 出错

Git:显示给定工作日的所有提交

git-branch - git:列出悬挂标签

git 记录 1 个分支与另一个分支之间的区别

xcode - 使用 XCode 连接到 Mac 上托管在 VSTS 上的 Git

git - 推送一个 'unchecked out' 分支

git apply patch(使用 diff -u0 创建)必须使用 --unidiff-zero

linux - 补丁在什么具体情况下无法应用?

python - 更新矩形补丁的位置