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:


Za tydzie艅

Zgodnie z zapowiedzi膮 w miesi臋cznym podsumowaniu, za tydzie艅 pojawi si臋 wpis o Kuchni Programisty – generalnie poopowiadam nieco na temat od偶ywiania. Sam bardzo lubi臋 ten temat i ci膮gl臋 si臋 go ucz臋 馃檪

5 1 vote
Article Rating
Subscribe
Powiadom o
guest
2 komentarzy
najnowszy
najstarszy oceniany
Inline Feedbacks
View all comments
0xmarcin
6 dni 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
6 dni temu

Good stuff!