我正在尝试按照以下过程https://optee.readthedocs.io/building/gits/build.html#get-and-build-the-solution
在Linux Ubuntu OS上构建OP-TEE在第3步中,使用命令“ $ repo sync -j4 --no-clone-bundle”,出现以下错误消息:
错误:无法获取linaro-swg / arm-trusted-firmware.git(GitError:--force-sync未启用;无法覆盖本地工作树。如果您对丢失工作树git的可能性感到满意,元数据,请使用repo sync --force-sync arm-trusted-firmware
继续。)
线程9中的异常:
如何获取linaro-swg / arm-trusted-firmware.git?
谢谢
答案 0 :(得分:0)
如H. Mijail's Blog中repo sync --force-sync overwrites your existing repository!中所述:
就像repo一样,可以跟踪它已创建的存储库。
因此,如果您创建了独立于存储库的存储库,然后将该现有存储库的条目添加到存储库清单中,则存储库同步会阻塞并向您显示以下消息:error.GitError: --force-sync not enabled; cannot overwrite a local work tree. If you're comfortable with the possibility of losing the work tree's git metadata, use `repo sync --force-sync mydirectory` to proceed.
原来,“ git元数据”意味着my目录中的整个
.git
目录。
因此,现有本地存储库中的任何分支,任何存储,任何东西都将被销毁。也不求助于reflog!运行
repo --force-sync
后,存储库将在以后的仓库同步调用中被仓库接受。使用
--force-sync
的一种替代方法可能是使用--force-break
(或简称为-f
),它会在任何目录无法同步时继续运行。
但是我没有尝试,而且我不知道如果我们假设repo不在未创建的目录中,那该怎么办?
无论如何...先备份本地仓库!