如果您想“撤消”功能分支,您有哪些选择?假设您添加了一个supercool-feature
完成的新功能(合并到开发并删除功能分支),然后它进入发布。但是你的用户真的不喜欢这个supercool-feature
。如何撤消/倒带/撤消已合并到开发和发布中的此功能?
我正在使用 SourceTree 进行版本控制。
运行此命令
git revert -m 1 <sha1 of M>
解释
你的情况大概如下:
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
进行了一次提交,您的功能分支中的每一项更改都将再次消失。
实际上命令是
git revert -m 1 <sha1 of M>
它删除了 M 移回包含 X,Y,Z 的分支,这不是主线 1。