我已经合并了develop
分支上的PR,但是分期存在问题,因此我使用以下命令进行了还原:
git revert -m1 <commit>
然后在git push
分支上develop
当我在Github上创建PR以将功能分支合并到develop
时,即使我已还原了develop分支上的合并提交,也未在PR上显示任何提交/代码。
什么问题以及如何解决?
答案 0 :(得分:1)
这里需要理解两个概念。
git revert
通过创建新的提交来撤消上一个提交。请参阅Git Revert Doc。先前的提交不会从历史记录中删除。以下是您的develop分支的当前状态。
c1 -- c2 -- merge commit -- revert commit
\ /
c3 -- c4
c3, c4 - commits that contain the feature branch changes
如果您现在尝试合并功能分支,由于c4 commit已在开发历史记录中,因此git将不会采取任何措施。
这可以通过以下方式解决。 link中对此场景进行了详细的讨论。
git log
以确定需要合并更改才能提交开发分支。 (在我们的示例中为c3)。git format-patch <commit> <folder where patch file will be saved>
git merge origin/develop
。这也将还原功能分支中的更改。git apply --index <patch file>
。如@Lasse所述,您可以还原还原提交。最好在特征分支中进行这些更改,然后提高PR来开发分支。
git revert <revert commit>
这是最不推荐使用的选项,因为它会重写功能分支历史记录。您可以运行git rebase -i <since commit>
并仅更改要合并的第一次提交的消息。这将创建新的当前和连续的提交哈希,并允许您合并它以进行开发。但是有两个问题。