1. 不管三七二十一,强制用线上库覆盖本地
该场景适合本地代码已废,可以强制拉取,如下命令或tortiose中直接操作进行硬重置
注意
git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本, 只保留源码,回退commit和index信息
git reset --soft:回退到某个版本, 只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!
git fetch --all
git reset --hard origin/dev
git pull
2. 冲突的场景(主要分清是否commit,未revert或stash,已reset-hard或merge)
(1)未commit先pull,视本地修改量选择revert或stash,A有新提交,B没有pull ,直接修改了文件后,进行pull 提示冲突,有以下两种处理方式:(本地代码和本地库的冲突,都是本地解决)
一般错误提示是: Please commit your changes or stash them before you merge
① 本地修改量小,小本本记下来,revert(放弃自己的代码),pull,新代码修改后 commit&push
② 本地修改量大,通关stash save(保存自己的代码)pull stash pop(弹出修改),解决冲突。
两种处理冲突文件:
- 选中a.txt文件,右击菜单选项 tortoiseGit --> Edit conflict,修改编辑区:如下图,保存时 标记冲突解决 .在进行提交。
-
直接修改文件。保存文件:
(2)已commit未push(就是push也报错,pull也报错,本地库和线上库的冲突)
①修改量小,直接回退到未提交的版本(可选择是否保存本地修改)
通过reset-hard(回退到未修改之前,把自己的更改取消) ,修改后直接commit&push,截图见强制覆盖。
②修改量大有两种处理方式,如果是pull,就会提示进行mege,直接merge,也可以终止合并,返回合合并之前的状态,解决冲突后,再提交。或者采用reset-mixed退回本地处理。
merge:
reset-mixed:
采用reset-mixed退回本地后,再用stash存本地,pop后解决冲突,两者本质是一样的,都是把线上冲突转换为本地处理。