repo sync出现contains uncommitted changes错误解决办法
出现这个问题的原因是本地代码发生变化,但未commit.
总思路:
将本地代码回退发生变化之前,然后重新拉取远程仓库代码。
解决:
- 进入发生 contains uncommitted changes 的路径下。
- 使用git status 查看commit
# Your branch and 'origin/msm8937_o1' have diverged,
# and have 1 and 4 different commit(s) each, respectively.
说明存在分支冲突,
- git cherry origin/msm8937_o1 查看哪个commit 冲突
- 使用git reset –hard <commit ID>恢复所有变化的文件。可以多回退几个。
- 回到根目录,repo sync
以下为其他网友的解决方式:
1)repo forall -c "git reset --hard && git clean -fd && git pull"//全部回退一个版本,重新pull 不建议。
使用git reset --hard 回退到commit未发生变化之前
git clean --fd 清除变化的文件,删除变化记录目录
git pull 重新pull代码
参考:https://blog.youkuaiyun.com/u012637313/article/details/48028161
2)试着通过 git reset --hard来恢复所有变化的文件之后,依然存在上述问题,
最后通过cd .repo/manifests 切换到 .repo/manifests目录下执行git stash命令,并通过git clean -f -d命令删除变化记录目录,然后使用repo sync就可以通过了。
参考:https://blog.youkuaiyun.com/rig622/article/details/8027182