Czy uruchomienie git init dwukrotnie inicjuje repozytorium lub reinicjalizuje istniejące repozytorium?

166

Co stanie się z istniejącym repozytorium git, gdy git initponownie wydasz?

Utworzyłem repozytorium z git init. Utworzono plik, dodaj, zatwierdź. Sprawdź status (nie ma nic do zatwierdzenia). Następnie utworzono kolejny plik, sprawdź stan i widzę, że nie został on śledzony zgodnie z oczekiwaniami.

Następnie, powiedzmy przez pomyłkę, uruchamiam git initponownie i otrzymuję komunikat o ponownej inicjalizacji istniejącego repozytorium Git .

Próbowałem git status, ale pokazuje to samo. Więc co tak naprawdę się dzieje?

Czy ponowna inicjalizacja istniejącego repozytorium git w ten sposób może być szkodliwa lub pomocna? Dlaczego możemy znaleźć się git initw istniejącym repozytorium?

Pan L.
źródło
FWIW używając Xcode raz pierwszy stworzył lokalnym repozytorium dla pierwszego czasu, a następnie, gdy poszedłem do github.com aby utworzyć nowy zdalnego repozytorium. Co zrobiłem, a potem połączyłem moje lokalne repozytorium z moim pilotem ... Postępowałem zgodnie z jego instrukcjami (dostarczonymi na Github.com), pierwszym krokiem jest to, git initco zrobiłem. Prawdopodobnie był to drugi raz po tym, jak Xcode automatycznie utworzył go
Honey

Odpowiedzi:

212

Z dokumentacji git :

Uruchomienie git init w istniejącym repozytorium jest bezpieczne. Nie nadpisze rzeczy, które już tam są. Głównym powodem ponownego uruchomienia git init jest pobranie nowo dodanych szablonów.

coreyward
źródło
110

Jest to opisane w git initdokumentacji:

Uruchomienie git init w istniejącym repozytorium jest bezpieczne. Nie nadpisze rzeczy, które już tam są. Głównym powodem ponownego uruchomienia git init jest pobranie nowo dodanych szablonów.

Greg Hewgill
źródło
47

Od wersji 1.7.5 ( b57fb80a7 ) git initw istniejącym repozytorium umożliwiło również przeniesienie .gitkatalogu:

Głównym powodem ponownego uruchomienia „git init” jest pobranie nowo dodanych szablonów (lub przeniesienie repozytorium w inne miejsce, jeśli podano --separate-git-dir).

„Pobieranie nowo dodanych szablonów” oznacza, że ​​wszystkie szablony, które nie zostały jeszcze skopiowane z katalogu szablonów, zostaną teraz skopiowane do istniejącego katalogu git.

„Przeniesienie repozytorium w inne miejsce” oznacza, że ​​jeśli --separate-git-dirwskazuje gdzie indziej, istniejący .gitkatalog zostanie tam przeniesiony i zastąpiony linkiem.

Joe
źródło
-1

to znaczy, że już zainicjowałeś git. ponieważ już przesyłasz plik na github z tej ścieżki. sprawdzasz ścieżkę, a następnie tworzony jest folder o nazwie .git. Dlatego nie potrzebujesz ponownie zainicjowanego gita. możesz przejść do bezpośredniego następnego kroku

git add.

Folder Git

Khadim Rana
źródło