使用 repo sync 命令来同步远端服务器的 Android 代码,如果本地修改了代码但还没有 commit,会提示无法 sync:
error: android/frameworks/base/: contains uncommitted changes
此时,可以使用 git reset 命令丢弃本地修改,然后再执行 repo sync 来同步代码。
如果想要不丢失本地修改,强制同步远端服务器代码,可以加上 -d 选项,repo sync -d 命令会将 HEAD 强制指向 repo manifest 版本,而忽略本地的改动。
查看 repo help sync 的帮助信息,对 -d 选项的说明如下:
-d, --detach
detach projects back to manifest revision
注意:加上 -d 选项只表示忽略本地改动,可以强制同步远端服务器的代码,但是本地修改的文件还是保持改动不变,不会强制覆盖掉本地修改。而且同步之后,本地的分支指向会发生变化,不再指向原来的分支。具体举例如下。
- 下面是执行 repo