GitHub 无法识别来自还原拉取请求的更改
GitHub does not recognize changes from a reverted pull request
我正在开发名为 bug-fix-1
的 Git 分支,这是我基于 integration
分支创建的。还有另一个分支 bug-fix-2
被合并到 integration
分支,然后我们恢复了更改(所有这些都是在 Github 上完成的)。
现在,当我提出新的拉取请求以将我的 bug-fix-1
合并到 integration
中时,我希望看到我从 bug-fix-2
中拉取的更改。但是不,我看不到它们中的任何一个,拉取请求仅显示我在 bug-fix-1
.
上所做的更改
关于如何将 bug-fix-2
的更改引入我的分支并将它们合并到 integration
的任何解决方案?
这是 Git 的一个有趣功能,一旦您意识到正在发生的事情,这并不是一个糟糕的功能。
Git 通过提交哈希跟踪提交,并且从历史记录中 hot-fix-2
已经存在。 Git 也知道已经应用了还原,但它并没有真正将其视为取消原始提交。相反,它只是恰好反向应用相同差异的另一个提交,它也有自己的提交哈希。
为了让 Git 看到更改,您有以下几种选择之一:
还原还原。听起来很奇怪,但它确实有效。这表示引入一个包含反向差异的新提交。该提交不存在于集成分支中,因此 Git 会将其视为要引入的更改。
您可以挑选原始提交,但您需要一个特殊选项:
git cherry-pick --keep-redundant-commits COMMIT_HASH
其中 COMMIT_HASH
引入了原始错误修复。
还有其他方法可以帮助做到这一点,但它们有点复杂并且涉及使用 git rebase
。我认为上述技术可能是最直接的。
为我解决这个问题的一个更简单的解决方案是对有问题的提交执行 git commit --amend
并稍微更改描述。这改变了提交哈希,使其成为不同的提交并且 GitHub 开始将其视为新的。
我正在开发名为 bug-fix-1
的 Git 分支,这是我基于 integration
分支创建的。还有另一个分支 bug-fix-2
被合并到 integration
分支,然后我们恢复了更改(所有这些都是在 Github 上完成的)。
现在,当我提出新的拉取请求以将我的 bug-fix-1
合并到 integration
中时,我希望看到我从 bug-fix-2
中拉取的更改。但是不,我看不到它们中的任何一个,拉取请求仅显示我在 bug-fix-1
.
关于如何将 bug-fix-2
的更改引入我的分支并将它们合并到 integration
的任何解决方案?
这是 Git 的一个有趣功能,一旦您意识到正在发生的事情,这并不是一个糟糕的功能。
Git 通过提交哈希跟踪提交,并且从历史记录中 hot-fix-2
已经存在。 Git 也知道已经应用了还原,但它并没有真正将其视为取消原始提交。相反,它只是恰好反向应用相同差异的另一个提交,它也有自己的提交哈希。
为了让 Git 看到更改,您有以下几种选择之一:
还原还原。听起来很奇怪,但它确实有效。这表示引入一个包含反向差异的新提交。该提交不存在于集成分支中,因此 Git 会将其视为要引入的更改。
您可以挑选原始提交,但您需要一个特殊选项:
git cherry-pick --keep-redundant-commits COMMIT_HASH
其中
COMMIT_HASH
引入了原始错误修复。
还有其他方法可以帮助做到这一点,但它们有点复杂并且涉及使用 git rebase
。我认为上述技术可能是最直接的。
为我解决这个问题的一个更简单的解决方案是对有问题的提交执行 git commit --amend
并稍微更改描述。这改变了提交哈希,使其成为不同的提交并且 GitHub 开始将其视为新的。