Похоже, репо отслеживает репозитории, которые он инициализировал.
Таким образом, если вы создали хранилище независимо от репо, а затем добавили запись для этого существующего репозитория в манифест репо, синхронизация репо захлебнется и выдаст вам сообщение:
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 metadata» означает весь каталог .git
внутри mydirectory.
Таким образом, любая ветка, любой тайник, все в вашем существующем локальном репозитории будет уничтожено.Также не используйте reflog!
После того, как вы запустите repo --force-sync
, репозиторий будет принят репо на дальнейшие вызовы синхронизации репо.
Альтернативой использованию --force-sync
может бытьиспользовать --force-break
(или просто -f
), который просто включается, когда какой-либо каталог не синхронизируется.
Но я не пробовал, и я не знаю, как это вообще имеет смысл, если мы предположим, чторепо не попадает в каталог, который он не создал.
В любом случае ... сначала сделайте резервную копию вашего локального репо!