Close

git init

Na tej stronie szczegółowo omówimy polecenie git init. Pod koniec tej strony będziesz znać podstawowe funkcje i rozszerzony zestaw funkcji git init. Omówione zagadnienia:

  • git init — opcje i użycie
  • Omówienie katalogu .git
  • Niestandardowe wartości środowiska katalogu git init
  • Porównanie git init i git clone
  • Repozytoria początkowe git init
  • Szablony git init

Polecenie git init tworzy nowe repozytorium Git. Może być używane do konwersji istniejącego, niewersjonowanego projektu do repozytorium Git lub zainicjowania nowego, pustego repozytorium. Większość innych poleceń Git nie jest dostępna poza zainicjowanym repozytorium, więc zazwyczaj jest to pierwsze polecenie uruchamiane w nowym projekcie.

Wykonanie polecenia git init powoduje utworzenie pliku podkatalogu .git w bieżącym katalogu roboczym, który zawiera wszystkie niezbędne metadane Git dla nowego repozytorium. Te metadane obejmują podkatalogi obiektów, odniesienia i pliki szablonów. Tworzony jest również plik HEAD, który zawiera odniesienie do aktualnie wyewidencjonowanego zatwierdzenia.

Oprócz katalogu .git w katalogu głównym projektu, istniejący projekt pozostaje niezmieniony (w przeciwieństwie do SVN, Git nie wymaga podkatalogu .git w każdym podkatalogu).

Domyślnie git init zainicjuje w ścieżce podkatalogu .git konfigurację Git. Ścieżkę podkatalogu można modyfikować i dostosowywać, jeśli chcesz, aby znajdował się gdzie indziej. Zmienną środowiskową $GIT_DIR można ustawić na ścieżkę niestandardową, a git init zainicjuje tam pliki konfiguracyjne Git. Dodatkowo można przekazać argument --separate-git-dir, aby osiągnąć ten sam wynik. Typowy przypadek użycia dla oddzielnego podkatalogu .git to przechowywanie ukrytych plików konfiguracji systemu (.bashrc, .vimrc itd.) w katalogu głównym, z zachowaniem folderu .git w innym miejscu.

Gałąź Git
materiały pokrewne

Gałąź Git

Logo Bitbucket
POZNAJ ROZWIĄZANIE

Poznaj środowisko Git z rozwiązaniem Bitbucket Cloud

Użycie


W porównaniu do SVN polecenie git init jest niezwykle łatwym sposobem tworzenia nowych projektów z kontrolą wersji. Git nie wymaga tworzenia repozytorium, importowania plików ani wyewidencjonowania kopii roboczej. Ponadto Git nie wymaga żadnych istniejących uprawnień serwera ani administratora. Wszystko, co musisz zrobić, to przejść do swojego podkatalogu projektu przy użyciu polecenia cd i wykonać polecenie git init, aby mieć w pełni funkcjonalne repozytorium Git.

git init

Przekształć bieżący katalog w repozytorium Git. Powoduje to dodanie podkatalogu .git do bieżącego katalogu i umożliwia rozpoczęcie rejestrowania przeglądu projektu.

git init <directory>

Utwórz puste repozytorium Git w podanym katalogu. Uruchomienie tego polecenia utworzy nowy podkatalog o nazwie <directory> zawierający tylko podkatalog .git .

Jeśli masz już uruchomione polecenie git init w katalogu projektu zawierającym podkatalog .git, możesz bezpiecznie ponownie uruchomić polecenie git init w tym samym katalogu projektu. Nie spowoduje to zastąpienia istniejącej konfiguracji w podkatalogu .git.

Porównanie poleceń git init i git clone

Krótka uwaga: polecenia git init i git clone można łatwo pomylić. Na wysokim poziomie oba mogą być użyte do „zainicjowania nowego repozytorium git”. Jednak polecenie git clone jest zależne od git init. git clone służy do tworzenia kopii istniejącego repozytorium. Wewnętrznie git clone najpierw wywołuje git init w celu utworzenia nowego repozytorium. Następnie kopiuje dane z istniejącego repozytorium i wyewidencjonowuje nowy zestaw plików roboczych. Dowiedz się więcej na stronie poświęconej poleceniu git config.

Repozytoria początkowe --- git init --bare


git init --bare <directory>

Inicjuje puste repozytorium Git, ale pomija katalog roboczy. Wspólne repozytoria powinny być zawsze tworzone z flagą --bare (patrz dyskusja poniżej). Konwencjonalnie repozytoria zainicjowane flagą --bare kończą się w podkatalogu .git. Na przykład początkowa wersja repozytorium o nazwie mój-projekt powinna być przechowywana w katalogu o nazwie mój-projekt.git.

Flaga --bare tworzy repozytorium, które nie ma katalogu roboczego, co uniemożliwia edycję plików i wprowadzanie zmian w tym repozytorium. Powoduje utworzenie repozytorium początkowego, w którym można wykonywać polecenia git push i git pull, ale nigdy nie dodaje się w nim bezpośrednich commitów. Centralne repozytoria powinny być zawsze tworzone jako repozytoria początkowe, ponieważ wypychanie gałęzi do repozytorium innego niż początkowe może spowodować nadpisanie zmian. Pomyśl o fladze --bare jako o sposobie oznaczania repozytorium jako magazynu, w przeciwieństwie do środowiska programistycznego. Oznacza to, że dla praktycznie wszystkich przepływów pracy Git centralne repozytorium jest repozytorum początkowym, a lokalne repozytoria deweloperów nie są początkowymi.

Repozytoria surowe

Najczęstszym zastosowaniem polecenia git init --bare jest tworzenie zdalnego repozytorium centralnego:

ssh <user>@<host> cd path/above/repo git init --bare my-project.git

Najpierw połącz się za pośrednictwem protokołu SSH z serwerem, na którym będzie znajdować się centralne repozytorium. Następnie przejdź do miejsca, w którym chcesz zapisać projekt. Na koniec użyj flagi --bare, aby utworzyć centralne repozytorium magazynu. Następnie programiści powinni sklonować my-project.git, aby utworzyć lokalną kopię na swoim komputerze.

Szablony git init


git init <directory> --template=<template_directory>

Inicjuje nowe repozytorium Git i kopiuje pliki z katalogu do repozytorium.

Szablony umożliwiają zainicjowanie nowego repozytorium z wstępnie zdefiniowanym podkatalogiem .git. Szablon możesz skonfigurować tak, aby zawierał domyślne katalogi i pliki, które zostaną skopiowane do podkatalogu .git nowego repozytorium. Domyślne szablony Git zwykle są przechowywane w katalogu /usr/share/git-core/templates, ale ścieżka na Twoim urządzeniu może być inna.

Szablony domyślne stanowią dobry punkt odniesienia i przykład użycia funkcji szablonów. Przydatną funkcją szablonów, która nie jest dostępna w szablonach domyślnych, jest konfiguracja hooków Git. Możesz utworzyć szablon z predefiniowanymi połączeniami Git i zainicjować nowe repozytoria git z typowymi hookami gotowymi do pracy. Dowiedz się więcej o hookach Git na stronie poświęconej hookom Git.

Konfiguracja


git init <directory> --template=<template_directory>

Wszystkie konfiguracje polecenia git init przyjmują argument . Jeśli podasz , polecenie zostanie w nim uruchomione. Jeśli ten katalog nie istnieje, zostanie utworzony. Oprócz omówionych opcji i konfiguracji polecenie git init ma kilka innych opcji wiersza poleceń. Oto ich pełna lista:

-Q

--QUIET

Drukuje tylko komunikaty o poziomie „krytycznym”, błędy i ostrzeżenia. Wszystkie pozostałe dane wyjściowe są wyciszane.

--BARE

Tworzy repozytorium początkowe (patrz sekcja „Repozytoria początkowe” powyżej).

--TEMPLATE=

Określa katalog, z którego pochodzą szablony do użycia. (patrz sekcja „Szablony git init” powyżej).

--SEPARATE-GIT-DIR=

Tworzy plik tekstowy zawierający ścieżkę do katalogu . Ten plik działa jako łącze do podkatalogu .git. Jest to przydatne, jeśli chcesz przechowywać katalog .git w oddzielnej lokalizacji lub dysku z plików roboczych projektu. Niektóre typowe przypadki użycia --separate-git-dir to:

  • przechowywanie ukrytych plików konfiguracji systemu (.bashrc, .vimrc itd.) w katalogu głównym, z zachowaniem folderu .git w innym miejscu.
  • Twoja historia Git stała się bardzo duża i musisz ją przenieść na osobny dysk o dużej pojemności.
  • Chcesz mieć projekt Git w publicznie dostępnym katalogu, takim jak www:root

Możesz wywołać polecenie git init --separate-git-dir w istniejącym repozytorium, aby przenieść katalog .git do określonej ścieżki .

--SHARED[=(FALSE|TRUE|UMASK|GROUP|ALL|WORLD|EVERYBODY|0XXX)]

Służy do ustawiania uprawnień dostępu do nowego repozytorium. Określa to, którzy użytkownicy i grupy korzystające z uprawnień na poziomie systemu UNIX mogą wypychać kod do repozytorium i ściągać go.

Przykłady


Tworzenie nowego repozytorium git dla istniejącej bazy kodu

cd /path/to/code \ 
git init \ 
git add . \ 
git commit

Tworzenie nowego repozytorium początkowego

git init --bare /path/to/repo.git

Tworzenie szablonu git init i inicjowanie nowego repozytorium git z szablonu

mkdir -p /path/to/template \ 
echo "Hello World" >> /absolute/path/to/template/README \
git init /new/repo/path --template=/absolute/path/to/template \ 
cd /new/repo/path \ 
cat /new/repo/path/README

Udostępnij ten artykuł
Następny temat

Zalecane lektury

Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.

Ludzie współpracujący przy ścianie pełnej narzędzi

Blog Bitbucket

Ilustracja DevOps

Ścieżka szkoleniowa DevOps

Demonstracje funkcji z ekspertami Atlassian

Zobacz, jak Bitbucket Cloud współpracuje z Atlassian Open DevOps

Zapisz się do newslettera DevOps

Thank you for signing up