Git-Flow 撤消已完成的功能分支

Git-Flow undo a finished feature branch

如果你想"撤消"一个特性分支,你有什么选择?假设您添加了一个新功能 supercool-feature 并完成(合并到开发并删除功能分支),然后它进入发布。但是你的用户真的不喜欢这个supercool-feature。如何撤消/倒带/撤消已合并到开发和发布中的此功能?

我正在使用 SourceTree 进行版本控制。


运行这个命令

1
git revert -m 1 <sha1 of M>

解释

你的情况大概如下:

1
2
3
A-B-----C---D-M     # master
   \\         /
    X-Y---Z-        # supercool-feature

A、B、C 和 D 在您的主分支中,X、Y 和 Z 在您的功能分支中。当您执行 git merge supercool-feature 时,Git 为您创建了一个"合并提交"M。此提交包含来自您的功能分支的所有提交以及修复合并冲突的可能修复。因此,如果您 revert 那一次提交,您的功能分支中的每一项更改都将再次消失。


其实命令是

1
git revert -m 1 <sha1 of M>

删除 M 移回包含 X,Y,Z 的分支,这不是主线 1.