我想为最后2个版本创建一个补丁。在git中,如何为最后的2+版本创建单个补丁?
git format-patch -2
给了我2个补丁文件,每一个版本
git format-patch HEAD~2..HEAD
给出了同样的事情。
git format-patch -1 HEAD~2..HEAD
给出一个文件,但只包含对最后一个修订版的更改。
有没有办法在git中做到这一点?
我想为最后2个版本创建一个补丁。在git中,如何为最后的2+版本创建单个补丁?
git format-patch -2
给了我2个补丁文件,每一个版本
git format-patch HEAD~2..HEAD
给出了同样的事情。
git format-patch -1 HEAD~2..HEAD
给出一个文件,但只包含对最后一个修订版的更改。
有没有办法在git中做到这一点?
git diff HEAD~2..HEAD > my-patch.diff
虽然它没有格式补丁的每个提交元数据。
显然。如果这两个承诺有不同的作者,应该有什么作者? 2-commit更改的提交消息应该如何显示?等 – 2010-02-08 10:03:24
请注意,如果您使用功能分支,您可以执行'git diff master mybranch> my-patch.diff'来为该分支创建一个补丁。 – 2012-08-21 00:34:40
你可以这样做:
$ git checkout -b tmp $ git reset HEAD~2 $ git commit -a
的承诺分支TMP将是一样的2个人提交。
你能告诉我们更多关于你想要做什么的背景吗?您是否意识到可以通过交互式重新压缩来压缩承诺?如果是这样,你为什么要压缩发送给其他人的补丁,而不是你历史记录中的相应提交? – 2010-02-07 21:04:12
@gbacon:我在发布这个问题后不久就了解了rebase。你说得对,这是对我的问题更好的解决方案。不过,知道如何做到这一点并不会让人伤心。 – 2010-02-07 22:15:12
@GregBacon:我现在经常做的一件事是:在一个功能分支中工作,有很多小的提交。当需要将分支推向主时,首先将其压扁。但同时,我使用'git diff master mybranch'来发送一个补丁来进行审查,同时仍然保留我小的提交历史记录(供我自己使用)。 – 2012-08-21 00:36:33