Jak podejrzeć jakie pliki zostaną wysłane na serwer po wykonaniu polecenia git push?
Przeglądając ostatnio internet natrafiłem na takie polecenie:
git push --dry-run
Co to robi? O tym będzie ten wpis.
–dry-run
Opcja –dry-run pozwala na za symulowanie wykonania danego polecenia. Używając go np. z poleceniem clean, czyli:
git clean --dry-run
W konsoli pojawią się nazwy plików, które zostałyby usunięte, jeśli tej opcji by nie było. O poleceniu clean pisałem wcześniej we wpisie: Jak szybko zrobić porządek w projekcie – polecenie git clean.
Ogólnie ta opcja jest bardzo przydatna w niektórych sytuacjach. Jednak wykorzystanie tej opcji przy poleceniu git push trochę mnie zdziwiło 🙂 Zerknąłem co jest napisane w dokumentacji i znalazłem taki opis:
Do everything except actually send the updates.
https://git-scm.com/docs/git-push#Documentation/git-push.txt—dry-run
Czyli co to robi? Od razu to sprawdziłem. W swoim testowym repozytorium dodałem 2 commity i chciałem je wysłać na serwer z opcją:
--dry-run
Co z tego wyszło?
Nic 🙂 W konsoli pokazało mi tylko URL do mojego repozytorium na GitHub oraz informację o commitach oraz o nazwach branchy (lokalnym i zdalnym). Za dużo się nie dowiedziałem 🙂
W jaki sposób można zobaczyć co zostanie wysłane na serwer po wykonaniu polecenia git push?
git diff na ratunek
Możemy użyć po prostu polecenia diff, aby porównać nasze zmiany z kodem na serwerze:
git diff --stat HEAD origin/master
To nam pokażę listę plików, które zostaną wysłane. Obok nazwy pliku będzie liczba zmienionych wierszy. Następnie będą znaki plus i minus określające czy linie zostały dodane czy skasowane.
Oczywiście polecenie diff ma kilka opcji:
git diff --numstat HEAD origin/master
Opcja numstat pokaże dokładną liczbę dodanych i usuniętych wierszy.
Jeśli natomiast z jakiegoś powodu chcemy przed wysłaniem na serwer zobaczyć cały kod, który zmieniliśmy to wpisuje w konsolę to:
git diff HEAD origin/master
W konsoli widzimy zmieniony przez nas kod w jeszcze nie wysłanych na serwer commitach.
Podsumowanie
Nie wiem po co dla polecenia git push jest dostępna opcja –dry-run. Nie udało mi się znaleźć jakichś dokładniejszych informacji w internecie. Jednak, aby sprawdzić co zostanie wysłane na serwer, można do tego użyć polecenia git diff.
Ja osobiście z tego raczej nie będę korzystał. Przeważnie wiem co jest w commitach, które zostaną wysłaną na serwer. Jeśli natomiast po dłuższym czasie wracam do kodu i mam coś nie zcommitowane to przeglądam po prostu ostatnie commity w jakimś GUI.
Jednak postanowiłem o tym napisać, może komuś się to przyda 🙂
Źródła:
https://git-scm.com/docs/git-push#Documentation/git-push.txt
https://stackoverflow.com/questions/3636914/how-can-i-see-what-i-am-about-to-push-with-git
Zdjęcie wykorzystane we wpisie zostało zrobione przez: William Bayreuther
0 Komentarzy