git init to komenda, od której zaczyna się prawie każdy projekt w Git. Tworzy nowe, puste repozytorium w bieżącym (albo wskazanym) katalogu — czyli zakłada ukryty folder .git/, w którym Git trzyma całą historię, gałęzie i konfigurację. Po jej wykonaniu masz katalog roboczy gotowy do śledzenia zmian: wystarczy git add i git commit. Działa identycznie na Linuksie, macOS i Windows, a uruchomiona w katalogu, który już jest repozytorium, bezpiecznie go reinicjalizuje (nie kasuje commitów).
Składnia i najważniejsze opcje
Podstawowa forma: git init [-b
-b(lub--initial-branch=) — ustawia nazwę pierwszej gałęzi, np.mainzamiast domyślnegomaster.--bare— tworzy repozytorium bez katalogu roboczego, używane jako centralne miejsce dopush/pull(na serwerze).-q(lub--quiet) — wycisza komunikaty, zostawia tylko błędy i ostrzeżenia.--separate-git-dir=<ścieżka>— trzyma katalog.gitw innym miejscu, a w projekcie zostawia plik-wskaźnik do niego.--template=— inicjalizuje repo z własnego szablonu (np. gotowe hooki).--shared[=— ustawia uprawnienia tak, by repo mogła współdzielić grupa użytkowników.]
Przykłady użycia
git init— zakłada repozytorium w bieżącym katalogu (tworzy.git/).git init moj-projekt— tworzy katalogmoj-projekti od razu robi z niego repozytorium.git init -b main— zakłada repo z gałęzią startową nazwanąmain, bez późniejszego zmieniania nazwy.git init --bare projekt.git— tworzy gołe repozytorium serwerowe, do którego zespół wysyła zmiany.git init --quiet— to samo co zwykłegit init, tylko bez gadatliwego komunikatu.
Częste błędy i pułapki
Klasyk: odpalasz git init w katalogu domowym albo o jeden poziom za wysoko i nagle śledzisz pół dysku. Sprawdź pwd przed startem. Jeśli przypadkiem założysz repo nie tam, gdzie trzeba, wystarczy usunąć katalog .git/ (rm -rf .git) — pliki projektu zostają nietknięte. Pamiętaj, że --bare nie da się commitować lokalnie, bo nie ma katalogu roboczego; to repo wyłącznie do synchronizacji. Drobna różnica między wersjami: starsze Git (sprzed 2.28) nie mają flagi -b — tam ustawisz domyślną gałąź przez git config --global init.defaultBranch main. I jeszcze jedno: git init nie podłącza zdalnego repozytorium — adres na GitHubie dodajesz dopiero przez git remote add.
Powiązane komendy: git clone, git add, git commit, git remote, git config.