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
igit 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.
materiały pokrewne
Gałąź Git
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.
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.