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.
Zobaczmy najpierw jak można sprawdzać historię w gicie.
git log -p my_file
. Wpisz q
, aby wyjść. ?my_file
. ?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.
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:
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!
my_commit
, które są w stanie unstaged
.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ć!
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.
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.
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!
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:
i
, aby wejść w tryb wstawiania.:x
. Nie zapomnij o dwukropku.Voilà, wolność! ?
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! ?
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? ?
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?
Mam nadzieję, że to intro do Gita okazało się przydatne. A teraz idź Gituj!