Git dla dociekliwych - git add
Cześć! Dawno mnie nie było. To znowu dlatego, że dużo się ostatnio dzieje. Dla ciekawskich: zmieniłam pracę i przeprowadziłam się do Warszawy. Jestem tu dopiero od dwóch tygodni, a już zyskałam koronę królowej JS-a (to nie ja ją sobie przyznałam). Jak ktoś chce znać więcej szczegółów, to zapraszam do kontaktu inną drogą.
Dzisiaj pogadamy sobie o gicie. Wiem, że już coś tam było. Jeżeli macie problemy z załapaniem absolutnych podstaw, to wbijajcie do mojego poprzedniego wpisu na ten temat. Bo dzisiaj będzie rozkładanie na części pierwsze rzeczy dla tych, którzy podstawy już znają.
Jak dobrze wiesz, polecenie git add
służy do śledzenia nowych plików w naszym repozytorium, a także do śledzenia zmian w już istniejących plikach. I bardzo często, szczególnie w tych niedużych projektach robionych na użytek własny, obsługa tego polecenia ogranicza się do:
git add . # lub
git commit -u
Oznacza to mniej więcej tyle, że zawartość całego katalogu, która została zmieniona, zostanie dodana do śledzenia przez gita. Do tego momentu jest bardzo prosto. Schody zaczynają się, kiedy chcesz dodać tylko część plików, a zrobienie tego ręcznie i pojedynczo przekracza granice twojej cierpliwości. Co możesz zatem zrobić? Ano, całkiem sporo. Czytaj dalej, to się dowiesz.
Zacznijmy od tego, że możesz chcieć dodać po prostu pliki JS do swojego repo. Oczywiście, że działają tutaj wzorce, które pozwalają w prosty sposób odfiltrować pliki:
git add *.js
Jeśli pracowałeś ze ścieżkami w konsoli, to na pewno znasz więcej takich sztuczek.
A teraz wyobraź sobie inną sytuację. Z jakiegoś powodu do tego comitu chcesz dodać tylko pliki, które już wcześniej istniały w twoim repozytorium i git o nich wie. Dodajesz małą literkę u
i już wszystko działa jak należy.
git add -u
Idziemy dalej. Wyobraź sobie teraz, że masz jeszcze ciekawszy przypadek. Potrzebujesz dodać pliki, które zostały zmodyfikowane, ale nie chcesz rejestrować faktu usunięcia niektórych.
git add --no-all
Zapewniam cię, że to zadziała. Ale jeśli mi nie wierzysz, to możesz to sprawdzić bez żadnych konsekwencji. Spytasz mnie “jak”? Za sprawą takiej opcji --dry-run
, która pozwala na przeprowadzenie symulacji tego, co zostanie dodane do naszego repo.
Z takich ciekawszych opcji możemy jeszcze odpalić sobie tryb interaktywny --interactive
, w którym zostaniemy przeprowadzeni przez proces z odrobinę bardziej przyjaznym interfejsem. Szkoda wymieniać tu takie rzeczy, jak możliwość edycji pliku --edit
, czy nadania (lub zabrania) mu uprawnień wykonania jako program --chmod=(+|-)x
. Całą resztę możecie doczytać w dokumentacji.
Tymczasem żegnam się. Z pewnością napiszę niebawem, a ty noś czapkę, bo noce coraz chłodniejsze, Miau!!!