中易网

Git怎样撤销一次分支的合并Merge

答案:3  悬赏:80  
解决时间 2021-12-15 04:07
Git怎样撤销一次分支的合并Merge
最佳答案
由于太多人问怎么撤销 merge 了,于是 git 官方出了这份教程,表示在 git 现有的思想体系下怎么达到撤销 merge 的目标。

方法一,reset 到 merge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 HEAD 都回滚回去:
$ git checkout 【行merge操作时所在的分支】
$ git reset --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 insertions(+), 2 deletions(-)

这样会创建新的 commit 来抵消对应的 merge 操作,而且以后 git merge 【那个编号所代表的分支】 会提示:
Already up-to-date.

因为使用方法二会让 git 误以为这个分支的东西都是咱们不想要的。

方法三,怎么撤销方法二:
$ git revert 【方法二撤销merge时提交的commit的版本号,这里是88edd6d】
Finished one revert.
[master 268e243] Revert "Revert "Merge branch 'jk/post-checkout'""
1 files changed, 2 insertions(+), 0 deletions(-)

这样就行了,可以正常 merge 了,不过可能会有很多冲突噢!!

$ git merge jk/post-checkout
Auto-merging test.txt
Merge made by recursive.
test.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
全部回答
方法一,reset 到 merge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 HEAD 都回滚回去:   $ git checkout 【行merge操作时所在的分支】   $ git reset --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 insertions(+), 2 deletions(-)
git撤销一次分支的合并merge 方法一,reset 到 merge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 head $ git checkout 【行merge操作时所在的分支】 $ git reset --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 insertions(+), 2 deletions(-) 这样会创建新的 commit 来抵消对应的 merge 操作,而且以后 git merge 【那个编号所代表的分支】会提示: already up-to-date. 因为使用方法二会让 git 误以为这个分支的东西都是咱们不想要的。 方法三,怎么撤销方法二: $ git revert 【方法二撤销merge时提交的commit的版本号,这里是88edd6d】 finished one revert. [master 268e243] revert "revert "merge branch 'jk/post-checkout'"" 1 files changed, 2 insertions(+), 0 deletions(-) 这样就行了,可以正常 merge 了,不过可能会有很多冲突。 $ git merge jk/post-checkout auto-merging test.txt merge made by recursive. test.txt | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) 最后,觉得顶上那些都麻烦。前端天天用 webstorm 写代码的看过来: webstorm 右键点击项目文件或文件夹,有一个: local history -> showhistory 点开后出现一个窗口,可以看到所有的本地改动。找到合适的那份,按左上角那个: revert 按钮,也就是个紫色的弯曲的小箭头就回去了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
积心的意思是什么?积心的释义是什么啊?
巴得的意思是什么啊?请解释下!
满湖荷叶荷花下一句
离异再婚且各自都有一个子女,可以再生二孩吗
科徭的意思是什么?科徭的释义是什么啊?
请问工信部大院怎么走呀?
朴勇的意思是什么啊?请解释下!
西安附近有没有适合学生团队游的地方。十月份
装饰屏风怎样套定额
協查的意思是什么?協查的释义是什么啊?
从法国进来的390190这类产品是否有反倾销
人王的意思是什么啊?请解释下!
不過意的意思是什么?不過意的释义是什么啊?
物体吸热,内能一定增加,温度升高吗?对物体
设递增的等差数列{an}中,a3+a5=8,a2×a6=
推荐资讯
水泆的意思是什么?水泆的释义是什么啊?
去大连旅游应几月份合适
象棋和围棋哪个下得久
鹦猩的意思是什么?鹦猩的释义是什么啊?
革響的意思是什么?革響的释义是什么啊?
在容桂去广州白云区坐什么车
新还珠第十二集里的那首插曲名是什么歌词好像
鸿盘的意思是什么?鸿盘的释义是什么啊?
襟背的意思是什么啊?请解释下!
公祖的意思是什么?公祖的释义是什么啊?
深圳市国土局坑梓所办公地址在什么地方,我要
有谁可以教我几个简单实用不容易被人揭穿的扑
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?