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

166

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

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

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

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

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

Мистер л
источник
FWIW с помощью Xcode я первый создал локальный репозиторий для первого времени, а затем , когда я пошел в github.com , чтобы создать новый удаленный репозиторий. Что я и сделал, затем связал свой локальный репозиторий с моим удаленным ... Я следовал его шагам (предоставленным на Github.com), первым делом git initя это сделал. Предположительно, это был второй раз после того, как Xcode автоматически его создал
Honey

Ответы:

212

Из Git Docs :

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

coreyward
источник
110

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

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

Грег Хьюгилл
источник
47

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

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

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

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

Джо
источник
-1

это значит, что вы уже инициализировали GIT. потому что вы уже загружаете файл на github с этого пути. Вы проверяете путь, затем создается папка по имени .git. Вот почему вы больше не обращаетесь к инициализированному git. Вы можете перейти к следующему шагу

мерзавец добавить.

Git папка

Хадим рана
источник