如果我有一个尚未推送到远程仓库的提交哈希,如何仅为该提交生成一个补丁? 我想使用
git log -p --no-names
命令,但找不到传递特定提交哈希的开关。 我应该使用不同的git命令吗?git log -p --no-names
命令,但找不到传递特定提交哈希的开关。 我应该使用不同的git命令吗?获取Git日志补丁的方法:
git log -p -1 <commit>
不过,你应该使用 git format-patch
来生成补丁:
git format-patch -1 <commit>
http://www.kernel.org/pub/software/scm/git/docs/git-format-patch.html
format-patch
相比于git log -p
有什么好处?谢谢。 - Jonathan Daygit format-patch
的输出以标准格式封装了作者信息和提交消息(以及差异文本),以便其他工具可靠地解析它们(例如使用git send-email
将其作为电子邮件发送和使用git am
来应用一个或多个补丁(例如已收集为接收电子邮件的补丁)。 - Chris Johnsengit log -p
的输出时出现了问题,那可能是解决方案。 - Jonathan Daygit apply
应用普通差异(例如来自git diff
或git log -p
的差异),甚至可以在存储库的工作树之外应用它们;或者如果您拥有完整的“补丁”,即git format-patch
,则可以使用git am
来 (重新)创建相关提交。 - Chris Johnsen