1. 问题描述:由于dev开放分支的主分支,经一个同事误操作命令,合并进来了另外一个分支的文件,导致dev一些文件被删除。
后又由于管理员在回滚此次合并时操作不当,未能恢复到正确的dev分支节点,而采用的做法是先备份了dev,然后再从master新建了新的dev分支来代替。后面又经过了一些列的操作后,想要切换分支时,出现如下错误:
The following untracked working tree files would be overwritten by checkout: (下面是提示一些将要被覆盖的文件)。
由于上述一些列不正确的操作,造成文件之间,版本之间,本地与远程分支 相互有不一致,有冲突;
2. 处理:
git fetch --all && git reset --hard origin/dev && git pull
说明:1) git fetch 拉取所有更新不同步,第二是 本地代码同步线上最新版本
2) 两个连用的目的是用 origin/dev 覆盖本地分支,一般是本地分支和远程分支有冲突时重置用。
3) git pull 拉取有更新的内容
3. 然后切换到各个分支,使用git status 查看当前分支,看看是否还有变更的文件,
4. 最后看看是否能顺利的在不同分支切换,如果还不行,再看具体的原因具体分析。