git merge --abort #如果Git版本 >= 1.7.4
git reset --merge #如果Git版本 >= 1.6.1

Note: 在合并之前要保证没有未提交的文件,如果有未提交的文件但现在又不想提交,用stash命令暂存。

暂存命令stash使用

git stash #将本地修改暂时存储起来
git stash list #查看暂存的信息
git stash pop  #应用最近一次暂存的内容
git stash apply stash@{1} #应用指定版本的暂存内容
git stash clear  #清空暂存栈

回退到某个版本并应用指定的几次提交

git reset --hard 1d7444 #回退到某个版本
git cherry-pick 626335 #将某次commit的更改应用到当前版本
git cherry-pick …
git push origin HEAD --force  #强制提交

Note:如果是撤销某次提交,可以用revert命令,git revert是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留; git reset是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区

方法一,resetmerge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 HEAD 都回滚回去: $ git checkout 【行merge操作时所在的分支】 $ git reset --hard 【merge前的版本号】 方法二,当 merge 以后还有别的操作和改动时,git 正好也有办法能撤销 merge,用 git revert: $ git r 开发项目的时候,使用gitLab合并功能分支feature到dev上的时候,出现了Conflicts,在线解决冲突之后,点击解决合并,结果反向的把dev的分支合并到了feature功能分支,这波蜜汁操作当时我就懵了!这下就终于理解了,当我的分支是feature/xxxx的时候,解决完冲突,将我的目标分支dev合并到了我的源功能分支上面去了,oh shit 这该死的操作!方法2:回滚补救法:设feature分支要合并到dev分支,且出现了冲突,合并完成后,对feature分支做回滚操作。 如果您在执行git merge操作过程中想要终止合并,可以使用命令。这个命令通常用于在遇到合并冲突时放弃当前的合并尝试,并将您的仓库恢复到合并操作之前的状态。 1、找到最后一次提交到master分支的commit_id,即merge前的commit_id,也就是目标要回退到的commit_id。 本图为Idea 2021.3 版本查看commit_id的方式。(点开git提交历史,查看代码改动的时候,左边的剪头指的那个) 2、在当前分支,打开终端,执行命令回退 git reset --hard comm 当我们使用git merge操作合并代码但还没add时,若想取消这次合并使用git merge --abort”命令即可 假如不幸已经 git add 了怎么办呢? 其实也很简单,先用 git reflog 指令显示历史的操作 再用 'git reset --hard commit id’就可以回退到操作之前的状态了 转自:https://blog.csdn.net/weixin_40984292/article/details/100024411 stash@{0}: WIP on emcache: c13f985 Merge pull request #12 from username/fixResponseType stash@{1}: WIP on fixResponseType: 8ba2b28 add and change some logic 指令显示历史的操作 ,查看下提交历史操作查看下你想回退到的版本,复制下那个版本的commit id。有些时候,在merge 的时候合并代码有问题,不想要此时的合并结果时。 Git 的 revert 命令可以用来撤销提交(commit),对于常规的提交来说,revert 命令十分直观易用,相当于做一次被 revert 的提交的「反操作」并形成一个新的 commit,但是当你需要撤销一个合并merge)的时候,事情就变得稍微复杂了一些。 Merge Commit 在描述 merge commit 之前,先来简短地描述一下常规的 commit。每当你做了一批操作(增加、修改、或删除)之后,你执行 git commit 便会得到一个常规的 Commit。执行 git show