今日份鸡汤:在这个美好又遗憾的世界里,你我皆是自远方而来的独行者,不断行走,不顾一切,哭着,笑着,留恋人间,只为不虚此行,无论几岁,开心万岁,童心未泯,初心不老~
git merge某分支到目标分支上,发现冲突太多合并代码出问题了想要回退这次提交怎么办?
分如下几种情况:
1、没有commit,没有push
解决方法1: 利用idea 的可视化操作 rollback
解决方法2:idea切换到其他分支,再切回来会提示这个分支有东西没有commit,让你选择commit还是drop commit,选择删除就行了
解决方法3:git reset --hard HEAD 回退到头结点,丢弃所有改动
2、已经commit,没有push
此时只需要改本地分支上的提交就行了
解决方法1: git reset --head HEAD^
解决方法2: git revert
3、已经commit,已经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上你会发现合并不了
网友评论