GitHub无法识别恢复的拉取请求中的更改

Dio*_*ung 6 git github git-merge

我正在开发一个名为Git的分支bug-fix-1,我在integration分支的基础上创建了分支.有另一个分支bug-fix-2合并到integration分支,然后我们恢复了更改(所有都在Github上完成).

现在,当我提出了一个新的拉动请求合并我bug-fix-1integration,我希望看到这是我从拉的变化bug-fix-2.但不,我看不到任何一个,拉请求只显示我所做的更改bug-fix-1.

有关如何将更改从bug-fix-2我的分支中拉入并将它们合并到一起的任何解决方案integration

Joh*_*ter 13

这是Git的一个有趣特性,一旦你意识到发生了什么,就不会那么糟糕.

Git通过提交哈希跟踪提交,并且历史记录hot-fix-2已经存在.Git也知道已经应用了reversion,但它并没有真正看到它退出原始提交.相反,它只是另一个提交,恰好反向应用相同的diff,它也有自己的提交哈希.

为了让Git能够看到更改,您可以选择以下几种方法之一:

  1. 还原还原.虽然听起来很奇怪,但它确实有效.这说明要引入一个包含反向差异的新提交.该提交不存在于集成分支上,因此Git会将其视为要引入的更改.

  2. 您可以选择原始提交,但您需要一个特殊选项:

    git cherry-pick --keep-redundant-commits COMMIT_HASH
    
    Run Code Online (Sandbox Code Playgroud)

    在哪里COMMIT_HASH介绍原始的bug修复.

还有其他方法可以帮助做到这一点,但它们有点复杂并涉及使用git rebase.我认为上述技术可能是最直接的.