Jeff Hale
Jeff HaleLead Instructor / Data Science @ General Assembly

10 poleceń Gita, które warto znać

Sprawdź, jak z pomocą Gita sprawdzić, usunąć lub uporządkować coś w swoim kodzie, poznaj sposoby na unikanie Vima i zaoszczędzenie czasu dzięki aliasom w bashu i konfiguracji edytora Git.
14.05.20225 min
10 poleceń Gita, które warto znać

W tym artykule omówimy różne polecenia Gita, które powinien znać każdy programista, Data Scientist czy Product Manager. Przyjrzymy się jak z pomocą Gita coś sprawdzić, usunąć lub uporządkować. Omówimy również sposoby na unikanie Vima i zaoszczędzenie czasu z pomocą aliasów w bashu i konfiguracji naszego edytora Git.

Oto 10 poleceń do poznania, wraz z typowymi dla nich flagami. Każde polecenie łączy się z opisem z przewodnika Atlassian Bitbucket dla tego polecenia.

Sprawdzanie historii

Zobaczmy najpierw jak można sprawdzać historię w gicie.

  • git diff- Zobacz wszystkie lokalne zmiany plików. Można dodać nazwę pliku, aby pokazać zmiany tylko dla jednego pliku. ?
  • git log- Zobacz całą historię commitów. Może być również użyty dla konkretnego pliku z pomocą git log -p my_file. Wpisz q, aby wyjść. ?
  • git blame my_file- Zobacz, kto co i kiedy zmienił w my_file. ?
  • git reflog- Wyświetla log zmian w HEAD lokalnego repozytorium. Przydatne do odnalezienia zagubionej pracy. ?


Sprawdzanie rzeczy za pomocą Gita wcale nie jest skomplikowane. W przeciwieństwie do tego Git daje nam wiele opcji usuwania i cofania commitów i zmian w plikach.

Cofanie zmian

git reset, git checkout, i git revert są używane do cofania skutków zmian w repozytorium. Polecenia te mogą mogą nadpisać historię, więc mogą też nabałaganić. git reset i git checkout mogą być używane zarówno na commitach, jak i pojedynczych plikach . git revert jest używany tylko na poziomie commitów.

Jeśli masz do czynienia tylko z własnymi lokalnymi commitami, które nie zostały scalone ze zdalną wersją, możesz użyć któregokolwiek z tych poleceń. Jeśli pracujesz w zespole i musisz zneutralizować commit w zdalnej gałęzi, narzędzie git revert jest dla Ciebie stworzone.

Każde z tych poleceń może przybrać wiele opcji. Oto typowe zastosowania:

  • git reset --hard HEAD- Odrzuć wszystkie zmiany (zarówno staged jak i unstaged) od czasu ostatniego commita.


Określ inny commit zamiast HEAD, aby odrzucić zmiany wprowadzone od czasu tego commita. --hard określa, że ​​że odrzucimy zmiany, które są w stanie staged jak i unstaged. Upewnij się, że nie usuwasz commitów ze zdalnej gałęzi, z której korzystają Twoi współpracownicy!


HEAD jest często używany przy my_commit do odrzucenia zmian w lokalnym katalogu roboczym od czasu ostatniego commita. checkout najlepiej używać tylko do cofania zmian lokalnych. Nie narusza historii commitów w gałęziach zdalnych, które potrzebne są Twoim współpracownikom.

Jeśli używasz checkout z gałęzią zamiast commita, to HEAD przełączy się na określoną gałąź, a katalog roboczy zostanie zaktualizowany tak, aby pasował do gałęzi. To najbardziej powszechne zastosowanie polecenia checkout.


revert jest bezpieczny przy pracy zespołowej, ponieważ nie nadpisuje historii, od której mogą zależeć gałęzie innych użytkowników.

Czasami po prostu chcesz usunąć nieśledzone pliki w lokalnym katalogu. Może uruchomiłeś jakiś kod, który stworzył wiele różnych typów plików, których wcale nie chcesz w repo. Ups ? Możesz je jednak błyskawicznie wyczyścić!

  • git clean -n— usuwa nieśledzone pliki w lokalnym katalogu roboczym.


Użyj flagi -n, by odpalić całość na sucho, bez faktycznego usuwania.
Użyj flagi -f, aby faktycznie usunąć pliki.
Użyj flagi -d, aby usunąć całe nieśledzone katalogi.

Domyślnie pliki nieśledzone przez .gitignore nie zostaną usunięte, ale to zachowanie może być zmienione.

Teraz, gdy znasz narzędzia do cofania rzeczy w Gicie, spójrzmy na dwa kolejne polecenia, które pomogą nam zachować porządek.

Czyszczenie historii


Jeśli nic nie jest w strefie staged, to polecenie pozwala na edycję ostatniego komunikatu commita. Polecenia tego należy używać tylko wtedy, gdy commit nie trafił do głównej gałęzi zdalnego repozytorium.

  • git push my_remote --tags - Wysyła wszystkie lokalne tagi do zdalnego repozytorium. Przydatne przy zmianach związanych z wersjonowaniem.


Jeśli używasz Pythona i dokonujesz zmian w zbudowanym przez ciebie pakiecie, bump2version automatycznie utworzy dla ciebie tagi. Po wypchnięciu tagów do zdalnego repozytorium tagów możesz ich używać w procesie wydawania nowych wersji paczek. Oto mój przewodnik po tworzeniu swojego pierwszego pakietu Pythona OSS. Śledź mnie, aby upewnić się, że nie przegapisz części o wersjonowaniu!

Pomocy! Utknąłem w Vimie i nie mogę wyjść!

Z Gitem może ci się przytrafić, że wpadniesz na edytor Vim. Na przykład, powiedzmy, że próbowałeś stworzyć commit bez opisu - Vim otworzy się automatycznie. Jeśli nie znasz Vima, to trochę słabo - rzuć okiem na tę odpowiedź od Stack Overflow, podbitą do góry ponad 4000 razy, która pomoże ci wyjść z tego dołka.

Oto cztery proste kroki, by uniknąć Vima z pomocą zapisanego pliku:

  1. Naciśnij i, aby wejść w tryb wstawiania.
  2. Wpisz opis commita w pierwszym wierszu.
  3. Naciśnij klawisz Escape.
  4. Wpisz :x. Nie zapomnij o dwukropku.

Voilà, wolność! ?

Zmień domyślny edytor

Aby całkowicie uniknąć Vima, możesz zmienić domyślny edytor w Gicie. Tu znajdziesz docsy z poleceniami dla popularnych edytorów. Oto polecenie zmiany dla domyślnego edytora, którego używam — Atom:

git config --global core.editor "atom --wait"

Zakładając, że masz już zainstalowanego Atoma, możesz go teraz użyć do rozwiązania problemów z Gitem! ?

Utwórz skróty do Gitowych poleceń

Możesz dodać skróty do Gitowych poleceń dodając nastepujące aliasy do pliku .bash_profile.

alias gs='git status '

alias ga='git add '

alias gaa='git add -A '

alias gb='git branch '

alias gc='git commit '

alias gcm='git commit -m '

alias go='git checkout '

Możesz dopasować całość tak, by utworzyć skróty do dowolnych poleceń Gita. Jeśli nie posiadasz pliku .bash_profile, możesz go utworzyć na macOS następująco:

touch ~/.bash_profile a następnie otwórz z open ~/.bash_profile. Zobacz więcej informacji na temat .bash_profile tutaj.

Teraz, gdy wpiszesz w terminalu gs, rezultat będzie taki sam, jak po wpisaniu git status. Zwróć uwagę, że możesz wprowadzić inne flagi po skrótach w swoim terminalu. Możesz także tworzyć Gitowe aliasy, ale te wymagają pisania git przed poleceniem skrótu. Komu to potrzebne? ?

Podsumowując

W tym artykule poznałeś wiele kluczowych poleceń Gita, oraz nauczyłeś się skonfigurować swoje środowisko tak, aby zaoszczędzić czas. Znasz podstawy Gita. Gotowy na kolejne kroki?

  • Sprawdź ten samouczek Bitbucket Gita, aby zgłębić temat jeszcze bardziej.
  • Przejdź się po tym interaktywnym przewodniku o modelu rozgałęziania w Gicie. Praca z wieloma gałęziami może przysporzyć sporo kłopotów, więc zdecydowanie warto tu zajrzeć. 
  • Ucz się, ciesz się tym i tłumacz różnice kolejnym osobom!


Mam nadzieję, że to intro do Gita okazało się przydatne. A teraz idź Gituj!

<p>Loading...</p>