从一个特性分支中删除一个合并提交的影响将被合并到一个特性分支中

Affects of removing a merge commit from a feature branch in a feature branch that will both be merged in

简而言之,我已将功能分支中的更改合并到我当前的功能分支中,并已远程推送合并,使用我合并的更改创建合并提交。现在,问题是,我没有不需要这些改变。此外,这些更改破坏了我的构建,因为我需要合并当前功能分支上其他项目的更改。我想避免这样做,所以我想还原合并提交。

Two feature branches, b1 and b2.
Merged b1 into b2, creating merge commit mc1, on b2.
Want to revert mc1 on b2.
Afraid revert mc1, will affect the merge of b1 into master staging.

恐怕因为我觉得要恢复,显然会有更改删除我从 b1 中合并的内容,一旦两个分支都合并到 master 中,这可能会从 master 中删除这些更改...

因为您没有删除之前的分支 b1,您应该能够安全地还原 b2 上的提交,而不会丢失 b1 上存在的任何更改。

您可以通过以下方式还原提交:

git revert <commit hash>
git checkout <current branch>

阅读有关还原提交的更多信息here

至于与master的冲突,master只会有合并进来的变化。如果你合并只有 b1mastermaster 将具有 b1 的变化。如果将 b2 合并到 mastermaster 将具有 b2 的更改。如果将 b1 b2 合并到 master 中,您可能必须解决出现的任何合并冲突,但 master 会包含 b1b2.

中已解决的更改