Praktyczny kurs GIT dla zielonych cz. 3 – Konflikty, .gitignore i Pull Requesty

Gitignore

Pliki .gitignore są to dokumenty tekstowe zawierające listę ignorowanych plików w repozytorium. Jak wspomniałem wcześniej zdarza się, że w katalogach należących do naszego projektu generowane są dynamicznie (np. cache, ustawienia środowiska itp.). Takich plików nie należy umieszczać w repozytorium, gdyż każdy użytkownik, który będzie rozwijał dany projekt, będzie generować własne „śmieci”. Jeśli je tam umieścimy, w najlepszym przypadku, w repozytorium zrobi się bajzel a jego rozmiar niepotrzebnie wzrośnie. W bardziej prawdopodobnym przypadku wystąpią konflikty.

Innym przypadkiem są pliki konfiguracyjne, klucze czy certyfikaty które są zależne od urządzenia, na którym dany kod jest uruchamiany. Pomijamy tu oczywiście kwestie zasad bezpieczeństwa, które zabraniają trzymać wszelkie dostępy i pliki uwierzytelniające w repozytorium. Weźmy dla przykładu .gitignore który tworzony jest automatycznie przez Android Studio:

Pierwsza linijka zawierająca *.iml odpowiada za ignorowanie wszystkich plików w repozytorium, które mają w nazwie rozszerzenie .iml. Kolejna linijka pozbawiona jest gwiazdki, oznacza to że git będzie ignorował wszystkie pliki które mają nazwę .grandle (pełną nazwę, nie końcówkę .grandle).  Linijki zaczynające się od slasha (‚/’) mówią o ignorowaniu konkretnej ścieżki do pliku lub katalogu, relatywnie względem katalogu głównego repozytorium. Linijki zaczynające się od ‚#’ są natomiast komentarzami. Należy zwrócić szczególną uwagę na slash (ukośnik) przy ustalaniu ścieżki, ponieważ:

Aby .gitignore zaczął działać (ignorować pliki zapisane w swojej zawartości) musi zostać dodany do stage’a lub scommitowany.