Выполняет ли запуск git init дважды инициализацию репозитория или повторное инициализацию существующего репо?

Что происходит с существующим репозиторием git при повторном выпуске git init?

Я создал репозиторий с git init. Создал файл, добавляет, фиксирует. Проверьте статус (ничего не зафиксировать). Затем создайте другой файл, проверьте статус, и я вижу, что он не отслеживается, как ожидалось.

Затем, скажем по ошибке, я снова запускаю git init, и я получаю Reinitialise существующее сообщение git репозитория.

Пробовал git status, но он показывает то же самое. Так что же происходит на самом деле?

Может ли повторная инициализация существующего репозитория git таким образом быть вредным или полезным? Почему мы можем git init внутри существующего репозитория?

Ответ 1

Из git docs:

Запуск git init в существующем репозитории безопасен. Он не будет перезаписывать вещи, которые уже существуют. Основная причина перезапуска git init - забрать недавно добавленные шаблоны.

Ответ 2

Это описано в документации git init:

Запуск git init в существующем репозитории безопасен. Он не будет перезаписывать вещи, которые уже существуют. Основная причина перезапуска git init - забрать недавно добавленные шаблоны.

Ответ 3

Так как v1.7.5 (b57fb80a7), git init в существующем репо также разрешает перемещать каталог .git:

Основная причина rerunning 'git init' - собирать недавно добавленные шаблоны (или перемещать репозиторий в другое место, если задано --separate- git -dir).

"Подбор недавно добавленных шаблонов" означает, что все шаблоны, которые еще не были скопированы из каталога шаблонов, теперь будут скопированы в существующий каталог git.

"Перемещение репозитория в другое место" означает, что если --separate-git-dir указывает на другое место, существующий каталог .git будет перемещен туда и заменен ссылкой.