Git怎样撤销⼀次分⽀的合并Merge git 到底是个多么奇葩的管理⼯具,⼀个问题能有这么多解释,⼀眼还不出来那个是对的。/blog/2010/03/02/undoing-merges.html这是官⽅的解答,待我看完,在此翻译⼀下。
======================简单翻译开始====================
由于太多⼈问怎么撤销 merge 了,于是 git 官⽅出了这份教程,表⽰在 git 现有的思想体系下怎么达到撤销 merge 的⽬标。
animals英语怎么读>cristiano ronaldo>独立主格
⽅法⼀,ret 到 merge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 HEAD 都回滚回去:
$ git checkout 【⾏merge操作时所在的分⽀】
韦博国际英语怎么样$ git ret --hard 【merge前的版本号】
⽅法⼆,当 merge 以后还有别的操作和改动时,git 正好也有办法能撤销 merge,⽤ git revert:
$ git revert -m 【要撤销的那条merge线的编号,从1开始计算(怎么看哪条线是⼏啊?)】【merge前的版本号】Finished one revert.
[master 88edd6d] Revert "Merge branch 'jk/post-checkout'"
全国英语三级考试成绩查询1 files changed, 0 inrtions(+),
2 deletions(-)
这样会创建新的 commit 来抵消对应的 merge 操作,⽽且以后 git merge 【那个编号所代表的分⽀】会提⽰:
Already up-to-date.
因为使⽤⽅法⼆会让 git 误以为这个分⽀的东西都是咱们不想要的。
louisbraille⽅法三,怎么撤销⽅法⼆:
$ git revert 【⽅法⼆撤销merge时提交的commit的版本号,这⾥是88edd6d】
Finished one revert.
保质期英文[master 268e243] Revert "Revert "Merge branch 'jk/post-checkout'""
parfun
1 files changed,
2 inrtions(+), 0 deletions(-)
这样就⾏了,可以正常 merge 了,不过可能会有很多冲突噢!!
$ git merge jk/post-checkout
Merge made by recursive.
< | 1 +
1 files changed, 1 inrtions(+), 0 deletions(-)
contain=====================简单翻译结束====================
最后的最后,还是觉得顶上那些都⿇烦爆了。前端天天⽤ WebStorm 写代码的看过来:WebStorm 右键点击项⽬⽂件或⽂件夹,有⼀个:
Local History -> Show History
点开后出现⼀个窗⼝,可以看到所有的本地改动。找到合适的那份,按左上⾓那个:
Revert
理发培训哪家好
按钮,也就是个紫⾊的弯曲的⼩箭头就回去了。在⽂件量不⼤的时候⼗分管⽤,强烈推荐。