Rozdział 23 · Część I · Git i GitHub od podstaw

Pierwsze ustawienie Git

Zanim wykonasz pierwszy commit, Git trzeba raz powiedzieć, kim jesteś — jest to zapisywane w każdym commicie.

SafeSort · Część 1 z 6Git i GitHub

Przed pierwszym commitem Git musieli podać nazwę i email. raz Informacje te są zapisywane w każdym commite i pozostają w historii na zawsze.

~/git_demo $ git init
Initialized empty Git repository in .../git_demo/.git/
~/git_demo $ git config user.name „Twoje imię”
~/git_demo $ git config user.email "you@example.com"
~/git_demo $ git config --local --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
user.name=Twoje imię
user.email=you@example.com
Ta nazwa jest zapisana w commitach, nie tylko w profilu GitHub
user.name/user.email nie oznaczają nazwy użytkownika GitHub i nie są tym samym co imię w profilu. To są dane, które dosłownie trafiają do każdego commitu jako autora zmiany i są widoczne dla wszystkich, którzy oglądają historię, także po publikacji na GitHub.

Flaga --local dotyczy tylko tego jednego repozytorium. Aby nie powtarzać konfiguracji przy każdym nowym projekcie, powszechnie stosuje się ją --global — wtedy imię i e-mail stosowane są do wszystkich repozytoriów na tym komputerze:

Terminal
git config --global user.name "Ваше Имя"
git config --global user.email "you@example.com"

Domyślna nazwa gałęzi

Łatwo tu popełnić błąd: Git nadal nazywa pierwszą gałąź nowego repozytorium masterjeśli jego nazwa nie jest w żaden sposób skonfigurowana, jest to inline Zachowanie się nie zmieniło. W wersji 2.28 Git zdobyła tylko siebie Przygotowanie init.defaultBranch, pozwalająca ustawić inną nazwę domyślną, — a nie nowe zachowanie „out-of-the-box”. Nazwa main stało się nawykiem od GitHub, GitLab wielu redaktorów konfiguruje tę opcję samodzielnie podczas instalacja, ale Git sam jej nie ustawia. Dlatego Cartesian School ją ustawia wprost, a nie Zależy od tego, co zostanie skonfigurowane na konkretnym komputerze:

Terminal
git config --global init.defaultBranch main
Git 2.28 dodała ustawienie zamiast nowego zachowania
Łatwo pomylić te dwie rzeczy. Git 2.28 (wydana w 2020 roku) dodała opcję init.defaultBranch — Wcześniej takie ustawienie w ogóle nie istniało, a pierwszą gałąź można było przemianować ręcznie tylko po utworzeniu repozytorium. Ale sama opcja nic nie zmienia, dopóki jej nie ustawisz: bez niej Git nadal tworzy gałąź masterw każdej wersji aż do najnowszych wersji. Możesz to sprawdzić w czystym środowisku bez ~/.gitconfig — tam git init tworzy dokładnie master.
Oficjalna dokumentacja
Set up Git
Tłumaczenie i edukacyjna adaptacja oficjalnej dokumentacji GitHub. materiałów źródłowych – CC BY 4.0.

Krótko

  • user.name/user.email są zapisywane w każdym commitcie — to są dane autora, a nie GitHub. logowania
  • --global stosuje to ustawienie do wszystkich repozytoriów na maszynie jednocześnie.
  • Git 2.28 dodała ustawienie init.defaultBranch, ale wbudowana nazwa pierwszej gałęzi nadal jest master — main musi być ustawiona wyraźnie.