git merge某分支到目标分支上,发现冲突太多合并代码出问题了想要回退这次提交怎么办?
1.未commit,未push
方式1: 利用idea 的可视化操作 rollback
方式2:idea切换到其他分支,再切回来会提示这个分支有东西没有commit,让你选择commit还是drop commit,选择删除就行了
方式3:git reset --hard HEAD 回退到头结点,丢弃所有改动
2.已提交,未push
此时只需要改本地分支上的提交就行了
方式1: git reset --head HEAD^
方式2: git revert
常见的git reset可以查看菜鸟教程
git reset 命令 | 菜鸟教程
3.已提交,已push
方式1:
git log 查看提交记录,选择回退到的commitId
git reset --hard *******(*是commitId)
git reset回退干脆利落,但是会丢失提交记录,比如你回退test分支,此时刚好有人提交东西到test,回造成他人代码丢失(别人会骂娘)
git reset执行完成push到远程需要强制推送
git push --force orign
方式2:
git revert *******(*是commitId)
git revert回滚会保留旧的提交记录,生成一条回退记录,是不错的选择,但是在多分支并行开发的模式下会导致有些commit和并不到目标分支上
例如 feature/1 test master三个分支
feature/1合并到test,然后git revert,
test 合并到master,然后feature/1合并到master上你会发现合并不了
版权归原作者 江山太美 所有, 如有侵权,请联系我们删除。