Backend

Jak w pięć minut zacząć używać Gita w wierszu poleceń

Codziennie piszesz kod, prawda? Dlaczego nie spróbować wprowadzania poleceń Gita w postaci kodu, zamiast wyklikwać go w GUI? OK, potrzebujesz trochę czasu, żeby się z tym oswoić, ale kiedy już to zrobisz, zaufaj mi, że będziesz bardziej efektywny niż kiedykolwiek. Pokażę ci kilka podstawowych poleceń. I nie, nie jest to kolejna dokumentacja.

Wiktor Malinowski. Senior Software Engineer w Codete. Full-stack developer z ponad siedmioletnim doświadczeniem komercyjnym. Pierwsze kroki w programowaniu stawiał w BASIC’u na Commodore 64 oraz Amidze. Z technologiami webowymi związany od 2008 roku, kiedy kod musiał działać także na Internet Explorer 6. Programista-pasjonat, fan nowoczesnych technologii.


Status

Polecenie git status pokazuje aktualną pozycję (np. na jakiej gałęzi jesteś) oraz jakie zaszły zmiany. Jak już oswoisz się komendą, możesz użyć git status –short , aby wyświetlić status w skróconej formie. A oto różnica:

Manipulowanie zmianami

Oto lista niektórych poleceń, które pozwalają na manipulację zmianami:

  • git add file – dodaje plikfile do poczekalni (zmiany gotowe do zatwierdzenia),
  • git restore file – odrzuca zmiany wfile,
  • git restore --staged file – usuwafile z poczekalni, ale pozostawia zmiany.

file może być zastąpiony dowolną ścieżką do pliku lub katalogu.

Sprawdzanie różnic

  • git diff – wyświetla zmiany w twoim drzewie roboczym,
  • git diff --staged – wyświetla zmiany z poczekalni,
  • git diff dev – wyświetla zmiany pomiędzy drzewem roboczym a gałęzią dev. Zamiast nazwy gałęzi możesz użyć identyfikator zmiany (commit hash) lub tag,
  • git diff master..dev – wyświetla zmiany między gałęziami master
    oraz dev.

Możesz także podać ścieżkę do pliku lub katalogu jako dodatkowy argument, aby zobaczyć różnice tylko dla określonych plików.

Jeśli chcesz tylko sprawdzić nazwy plików, które były zmienione, użyj przełącznika --name-status. Jeśli chcesz dodatkowo wiedzieć, które pliki zostały zmodyfikowane, dodane lub usunięte, użyj przełącznika--name-status.

Zatwierdzanie

Po dodaniu zmian do poczekalni użyj polecenia git commit -m 'Commit massage', aby zatwierdzić zmiany. Jeśli nie podasz przełącznika -m, otworzy się domyślny dla Gita edytor tekstu. Nie bądź zaskoczony, jeśli to będzie VIM. Zapisz plik i zamknij edytor, aby zatwierdzić zmianę.

Możesz zmienić domyślny edytor w konfiguracji, używając tej komendy:

git config --global core.editor your-editor-executable-path

Używanie wyrażeń regularnych z poleceniami add/restore/switch/ diff

Dodawanie do poczekalni tylko plików z rozszerzeniem ts, które znajdują się w katalogu src:

git add src/**/*.ts

Odrzucanie zmian z katalogu test:

git restore test/

Odrzucanie wszystkich zmian z poczekalni zaczynając od bieżącego katalogu:

git restore --staged .

Dla celów testowych możesz próbnie uruchomić polecenie, używając przełącznika -n.

Interaktywne wybieranie zmian

Użyj przełącznika -p (lub --patch), aby interaktywnie wybierać kawałki kodu, które chcesz dodać przy użyciu komendy add (bądź -reset lub restore). Decydujesz, który kawałek (bądź cały plik) dodać. Z przełącznikiem -p wynik zmienia się w:

Przełączanie

Polecenie switch służy do przełączania między gałęziami:

  • git switch branch-name – przełącza do gałęzi branch-name,
  • git switch -b abc – tworzy gałąź abc i przełącza się na nią,
  • git switch – przełącza do poprzedniej gałęzi,
  • git checkout [args] – działa jako switch, ale może również przenieść HEAD do dowolnej wersji / tagu *.

*switchi restore to całkiem nowe polecenia, mające na celu zapewnienie lepszego interfejsu dla dobrze znanego, wielozadaniowego polecenia checkout.

Gałęzie

  • git branch – zwraca listę lokalnych gałęzi.
    Użyj -r, aby wyświetlić listę tylko zdalnych gałęzi lub -a, aby wyświetlić je wszystkie,
  • git branch abc – tworzy gałąź abc,
  • git branch -d abc – usuwa gałąź abc jeśli już jest scalona. Jeśli nie, użyj -D, aby wymusić usunięcie.

Historia zmian

Użyj git log, żeby zobaczyć historię zmian.

Jest tu dużo opcji, takich jak:

  • Wyświetlanie dodatkowo wszystkich zmian:
    git log -p
  • Wyświetlanie n ostatnich zmian zaczynając od bieżącej pozycji:
    git log -2 # display two recent commits
  • Wyświetlanie zmian dla danej gałęzi:
    git log branch-name
  • Wyświetlanie zmian tylko dla określonego pliku/plików (można użyć wyrażeń regularnych):
    git log *.js # or git log branch-name:*.js
  • Wyświetlanie zmiany tylko danego autora (można użyć częściowej nazwy):
    git log --author wiktor
  • Wyświetlanie według daty:
    git log --since 2019-10-01
  • Wyświetlanie według daty, używając dynamicznych zakresów (dni, tygodnie, miesiące, lata):
    git log --since 2months --until 1week

Ustawienia aliasów

Nie musisz wpisywać całych poleceń Gita za każdym razem. Można ustawić alternatywne nazwy komend. Po prostu wklej to do swojego pliku .gitconfig.

[alias]

 br = branch

 st = status

 rt = restore

 sw = switch

 ci = commit

 d = diff

 dc = diff --cached

 l = log

 last = l -1 # możesz użyć istniejącego aliasu do stworzenia kolejnego

Teraz możesz po prostu użyć git st zamiast git status, etc.

Możliwe jest również dodanie aliasu z wiersza poleceń. Na przykład ustawienie l dla polecenia log : git config --global alias l log.

Aliasy w akcji:

Scalanie gałęzi

git merge abc – scala gałąźabc do tej, w której się aktualnie znajdujesz.

Czasem nie chcesz załączać historii zmian podczas scalania. Istnieje opcja, aby dostać tylko zmiany z danej gałęzi.

git merge --squash your-branch

Powoduje to wprowadzenie zmian do poczekalni, dzięki czemu możesz je nadal zmodyfikować przed scaleniem.

Ustawienia kluczy SSH

Aby uzyskać dostęp do prywatnego repozytorium, musisz mieć uprawnienia.

Możesz użyć uwierzytelnienia przez HTTPS lub skonfigurować klucz SSH. Klucze SSH mają wiele zalet w stosunku do haseł, takich jak:

  • Większe bezpieczeństwo, gdyż jest niezwykle mało prawdopodobne, aby ktoś złamał lub odgadł klucz,
  • “Hasło” bez wpisywania (o ile klucz nie został stworzony wraz z hasłem).

Aby utworzyć parę kluczy SSH, użyj polecenia ssh-keygen:

ssh-keygen -t rsa -b 4096

Komenda tworzy klucz RSA o rozmiarze klucza 4096 bitów dla większego bezpieczeństwa. Domyślnie klucze zapisują się do katalogu ~/.ssh. Pamiętaj, że prywatny klucz id_rsa jest tajny i pod żadnym pozorem nie może być udostępniany.

Następnie wyślij klucz publiczny ~/.ssh/id_rsa.pub na swoje konto GitHub.

Jest do tego oficjalny tutorial:
https://help.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account?source=post_page—–36a6e0007e9f———————-

Od teraz masz dostęp do repozytorium bez podawania hasła.

Proces powinien wyglądać dość podobnie dla innych aplikacji, takich jak GitLab czy Bitbucket.

Ciągle tu jesteś?

Koniecznie musisz wypróbować narzędzie do obsługi Gita w trybie tekstowym – tig. Ułatwia przeglądanie zmian w repozytorium. Spójrz na zrzut ekranu:

To wszystko!

To był prosty przykład użycia podstawowych poleceń Git. Każde z nich jest tak obszerne, że musiałbyś napisać artykuł (lub ich serię), o każdym z nich oddzielnie. Sama instrukcja polecenia log składa się z ponad 2300 linijek.

git log --help | wc -l

2334

Dzięki za lekturę!


Artykuł został pierwotnie opublikowany na medium.com/better-programming. Autorką tłumaczenia jest Kinga Bielicka. Zdjęcie główne artykułu pochodzi z unsplash.com.

Wraz z Tomaszem Gańskim jestem współtwórcą justjoin.it - największego job boardu dla polskiej branży IT. Portal daje tym samym największy wybór spośród branżowych stron na polskim rynku. Rozwijamy go organicznie, serdecznie zapraszam tam również i Ciebie :)

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://justjoin.it/blog/git-w-wierszu-polecen" order_type="social" width="100%" count_of_comments="8" ]