Nasza strona używa cookies. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Zarządzanie plikami z git add -p

Matthew Cummings Full-Stack Web Developer
Poznaj funkcję git add -p i zobacz, w jaki sposób może ona ułatwić Ci pracę nad kodem.
Zarządzanie plikami z git add -p

Używanie Gita to jedna z tych rzeczy, których uczysz się, zaczynając programować. Niestety, gdy już ogarniesz podstawy i założysz konto na GitHubie, koncepcja ta powszednieje i przestajesz ją doceniać. Jest to coś, do czego łatwo się przyzwyczaić, nawet zbyt dużo o tym nie myśląc. Zatem, jeśli Git jest jedną z pierwszych rzeczy, których uczymy się jako twórcy oprogramowania, czy nie powinniśmy się zatem na tym opierać?

Starałem się o tym ostatnio więcej dowiedzieć, szczególnie po pouczającej rozmowie, jaką odbyłem na spotkaniu networkingowym. Niedawno rozmawiałem z kimś, kto od pewnego czasu zajmuje się inżynierią oprogramowania. Osoba ta stwierdziła, że fakt niezwracania uwagi na swoje commity przez nowych i doświadczonych programistów jest denerwujący. Wyjaśnił, dlaczego utrudnia to śledzenie zmian w dokumentach, co szczególnie zatruwa pracę, gdy ma się duży zespół. 

Oznacza to, że kiedy pojawia się błąd, jego znalezienie zajmuje więcej czasu, niż powinno, nie wspominając już nawet o znalezieniu wersji, która działała, zanim błąd się pojawił.

Powiedział coś w stylu:

Byłbym pod wielkim wrażeniem, gdybym mógł porozmawiać z kimś, kto wie, co to git add -p.

Stwierdzenie to wzbudziło zainteresowanie kilku osób. Zapytaliśmy, co to do cholery był ten git add -p. Wyjaśnił, że funkcja ta po kolei ładuje segmenty kodu, w których wprowadzono zmiany. Po uruchomieniu tego polecenia wyświetlane są „kawałki” wykonanej pracy, pokazujące kod dodany lub usunięty.

Jest to niezwykle pomocne, jeśli dużo zostało zrobione, ale od dłuższego czasu nie został stworzony żaden commit. Czynność ta odświeża to, co się do tej pory zrobiło i daje ostatnie spojrzenie przed zapisaniem zmian w repozytorium. Podczas przeglądania fragmentów swojej pracy możesz także zobaczyć różne pliki. To pomaga w lepszym zorientowaniu się w kodzie. Prowadzi to również do lepszych jakościowo i bardziej szczegółowych opisów zmian, zamiast nijakich lub niejasnych stwierdzeń. 

Po wyświetleniu każdego kolejnego kawałka kodu następuje prośba o wykonanie jednej z następujących czynności (bezpośrednio z sekcji pomocy git add -p):

y - zapisz ten kawałek kodu

n - nie zapisuj tego kawałka kodu

q - wyjdź; nie zapisuj tej części kodu, ani żadnej z następnych

a - zapisz ten kawałek kodu i wszystkie następne

d - nie zapisuj tego kawałka kodu ani żadnego z następnych

g - wybierz kawałek kodu, do którego przejdziesz

/ - wyszukaj kawałek kodu pasujący do danego wyrażenia regularnego

j - przeskocz bieżący kawałek kodu i przejdź do następnego pozostawionego kawałka

J - przeskocz bieżący kawałek kody i przejdź do następnego kawałka

e - ręcznie edytuj bieżący kawałek kodu

? - drukuj pomoc

  • y i n są dość oczywiste — albo zdecydujesz się na zapisanie kawałka kodu lub nie.
  • Opcja q uniemożliwia powyższe, co jest przydatne, jeśli nie chcesz jeszcze niczego zapisać lub widzisz poważny błąd.
  • Opcja a może zostać użyta, gdy wiesz, że późniejsze fragmenty w obecnie sprawdzanym pliku nie muszą zostać dokładnie przebadane. Może się to przydać w przypadku, na przykład, chęci dokonania kosmetycznych zmian w kodzie takich jak usunięcie znaków niedrukowalnych. 
  • Opcja d jest przeciwieństwem powyższego. Nie zapisuje ani obecnego, ani żadnego z późniejszych kawałków kodu w pliku. Nie spowoduje to całkowitego zatrzymania procesu. 
  • Opcja g pozwala na przejście do określonego kawałka kodu. Po aktywacji komenda ta wyświetli listę innych kawałków obecnych w pliku według numeru. Wpisanie odpowiedniego numeru spowoduje przejście do przeglądu danego fragmentu kodu (w przypadku, gdy w pliku jest tylko jeden, opcja ta nie będzie dostępna).
  • Opcja / umożliwia wpisanie wyrażenia regularnego (więcej o wyrażeniach regularnych tutaj), aby przeszukać kilka fragmentów w danym pliku.


Może to być przydatne, jeśli pamiętasz, że coś robiłeś, ale nie pamiętasz dokładnie co. Wyobraź sobie, że pracujesz jako front-endowiec i napisałeś gdzieś <div> z określoną nazwą klasy. Jeśli pamiętasz nazwę, znacznie zawężasz liczbę kawałków kodu, które musisz wyszukać.

  • Opcje j i J są do siebie podobne, ponieważ możesz przeskoczyć dany kawałek kodu. Różnią się tylko tym, co zobaczysz jako następne, niezależnie od tego, czy będzie to następny kawałek kodu, czy też następny fragment, który przeskoczono.


Przeskoczenie kawałka kodu przydaje się, gdy nie masz pewności, czy chcesz w danej chwili coś zapisać. Na przykład zapisanie jednego kawałka kodu może zależeć od przeglądu i zapisania innych.

  • Opcja e otwiera domyślny edytor tekstu i pozwala bezpośrednio modyfikować kawałek kodu. Jest to idealne rozwiązanie, gdy zauważysz problem lub chcesz szybko coś naprawić.
  • Ostatnia opcja otwiera okno pomocy.


Podsumowanie

Szeregowanie zmian wprowadzonych w ostatniej wersji pozwala na lepsze zorientowanie się w tym, co do danej pory zostało zrobione. Możesz sprawdzić, co dokładnie zrobiłeś w każdej sekcji i zdecydować, czy są one gotowe do zapisania w repozytorium.

Tego rodzaju podejście do zarządzania plikami może również prowadzić do częstszych commitów zawierających wyraźniejsze komunikaty opisujące pracę.

Dla tych, którzy szczegółowo podchodzą do pracy, użycie git add -p jest znacznie lepsze niż bezmyślne zapisywanie wszystkiego na raz. Spróbuj użyć go przy następnym commicie i zobacz różnicę.

Przyjemnego programowania!


To oficjalne tłumaczenie z języka angielskiego, a oryginał tekstu przeczytasz tutaj.

Rozpocznij dyskusję

Lubisz dzielić się wiedzą i chcesz zostać autorem?

Podziel się wiedzą z 160 tysiącami naszych czytelników

Dowiedz się więcej