Jak podejrzeć jakie pliki zostaną wysłane na serwer po wykonaniu polecenia git push?

Opublikowane przez Tomasz Prasołek w dniu

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?

git push --dry-run
git push –dry-run

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.

git diff --stat HEAD origin/master

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.

git diff --numstat

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
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: unsplash-logoWilliam Bayreuther


0 Komentarzy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *