Przejdź do treści

Konfiguracja Gita. Jak Skonfigurować Raz a Dobrze 👍🔥

Konfiguracja Gita pozwala na zautomatyzowanie kilku przydatnych rzeczy, tak aby nie trzeba było ich w kółko powtarzać. Warto być ich świadomym i warto korzystać, żeby nie powtarzać co jakiś czas tych samych czynności! 🙂


Cześć 🙂

Jest to pierwszy artykuł z kategorii Tips&Tricks i dziś dam Ci kilka wskazówek co do zarządzania konfiguracją Gita.

W dzisiejszym artykule:


Git Config

Aby zacząć z automatyzacją konfiguracji, najpierw trzeba zrozumieć czym jest sama konfiguracja i jakie są jej opcje.

Git udostępnia trzy poziomy konfiguracji:

Każdy kolejny poziom nadpisuje ustawienia z warstwy wyższej. Konfiguracje Gita to nic innego jak zwykłe pliki testowe a co za tym idzie można je edytować za pomocą ulubionego edytora. Nie jest to jednak najwygodniejsza opcja, dlatego git pozwala na użycie komend zarządzających konfiguracjami:


Konfiguracja Globalna

Jeżeli chcesz bawić się konfiguracją na poziomie innym niż lokalny wystarczy dodać dodatkowy przełącznik –global w przypadku konfiguracji globalnej lub –system w przypadku systemowej.

Polecenie powyżej ustawi user.name na test w konfiguracji globalnej. Domyślnie, bez podania żadnego przełącznika, config ustawiany jest na poziomie lokalnym. Konfiguracji systemowej nie zalecam edytować i zmieniać – niech działa domyślnie, prawdopodobnie pozwoli Ci to uniknąć problemów jeżeli nie czujesz się jeszcze bezpiecznie w tematach konfiguracji 🙂

A czym jest konfiguracja globalna?

Myślę, że najprościej będzie to wyjaśnić na przykładzie. Konfigurujesz nowy projekt (robisz git init lub git clone), chcesz coś pushnąć na repozytorium a user.name i user.email nie są ustawione, dostajesz taki komunikat:

Sam Git podpowiada aby ustawić te konfiguracje globalnie. Dlaczego? Bo ustawiając je globalnie, każdy kolejny projekt będzie dziedziczyć ustawienia globalne. Zgodnie z regułą nadpisywania ustawień – dopiero ustawienie nowych konfiguracji na poziomie lokalnym mogą nadpisać poziom globalny. A zatem, jeżeli nie ustawimy konfiguracji na poziomie lokalnym to będą one pobierane z warstwy wyżej, tzn. globalnej.


Automatyzacja!

Problem z dziedziczeniem konfiguracji jest taki, że musimy pamiętać o nadpisywaniu ustawień (np. email) na poziomie lokalnym jeżeli używamy innych adresów do projektów służbowych i prywatnych. Baa… a co jeżeli w pracy jesteśmy na kilku projektach, które wymagają podania oddzielnych adresów email? Sam mam ustawione 2 emaile służbowe i 1 prywatny.

Z pomocą przychodzi Konfiguracja Warunkowa i Współdzielona! 

Konfiguracja Współdzielona – jest to nic innego jak osobny plik zawierający jakiś kawałek konfiguracji. Tworzymy go w prosty sposób:

Równie dobrze możesz utworzyć taki plik ręcznie. Pamiętaj – konfiguracja to tylko pliki tekstowe 🙂

Konfiguracja Warunkowa – tak jak sama nazwa wskazuje – WARUNKOWA. Jaki warunek będzie najlepszy? Biorąc pod uwagę, że zazwyczaj nasze projekty mają swoje miejsce w pewnych folderach, podział projektów na katalogi będzie najlepszy. Wystarczy trzymać się zasady: projekty prywatne (jeden email) idą do tego folderu, projekty służbowe (inny email) do innego. Konfigurację warunkową ustawiamy na poziomie globalnym!

Przykład zautomatyzowanej konfiguracji:

Na co dzień używasz jednego głównego maila: ogolny@example.com, natomiast w celach służbowych innego: praca@work.com. Mail główny jest używany w wiekszości projektów, więc śmiało możesz go ustawić na poziomie globalnym bez żadnych warunków – po prostu będzie to adres wybierany domyślnie. Natomiast mail służbowy ma być używany tylko dla specyficznych projektów.

  1. Ustalamy katalog z projektami służbowymi (np. ~/praca/)
  2. Tworzymy nowy config (w moim przypadku w katalogu użytkownika ~/)
  3. Dodajemy warunek wykorzystania nowej konfiguracji, gdy projekty znajdują się w katalogu ~/praca/

I tyle. Od teraz nie musisz pamiętać o ustawianiu innych adresów email (lub innych konfiguracji specyficznych dla danego projektu) oddzielnie. Masz jedną, globalną konfigurację. Poświęciłeś 10 minut na konfigurację i nie musisz się nią przejmować przez długi czas! 🙂

A tutaj screen, jakby to mogło wyglądać, gdybyś chciał skonfigurować dwie różne konfiguracje. Pamiętaj, że nie ma ograniczeń – jeżeli potrzebujesz więcej różnych ustawień, możesz to śmiało robić. Jednak ja ze swojego doświadczenia dam Ci wskazówkę, żeby nie używać więcej niż 3 dodatkowych plików konfiguracyjnych. W przeciwnym razie będzie Ci się ciężko połapać.


Podsumowanie

Konfiguracja Gita to prosty mechanizm. Wiele osób mimo wszystko go nie rozumie – moim zdaniem ponieważ go zlekceważyli. Warto korzystać z ułatwień jakie dają nam narzędzia – dzięki temu zwiększa się nasza produktywność i jakby nie patrzeć – wiedza!

Korzystasz z różnych adresów email (a być może i user.name) na jednym komputerze? Moim zdaniem nie ma co zwlekać – dodaj konfigurację warunkową i ułatw sobie życie. Ustrukturyzuj katalogi i ogień 🔥🔥!

Źródła:

5 1 vote
Article Rating
Subscribe
Powiadom o
guest
2 komentarzy
najnowszy
najstarszy oceniany
Inline Feedbacks
View all comments
0xmarcin
4 lat temu

Polecam dodanie sobie globalnego gitignore:
git config –global core.excludesFile '~/.gitignore’
Dzięki temu można się szybko pozbyć np. plików .DS_Store na macOS, czy plików .swp od VIM’a

Piotr
Piotr
4 lat temu

Good stuff!

2
0
Would love your thoughts, please comment.x