Dzisiaj postanowiłem podzielić się z Wami moim sposobem na pracę w Gicie.
Jeżeli jeszcze nie wiecie to Git jest jednym z wielu narzędzi kontroli wersji. Wielu ludzi uważa, że najlepszym. Oprócz Gita osobiście korzystałem jeszcze z SVNa którym się sparzyłem(„ciężkie” gałęzie). Więc uznałem, że Git jest git i nic innego nie chcę testować. Jeżeli chcecie wiedzieć więcej to zapraszam pod ten link. To co lecimy z moim sposobem na pracę z Gitem?
Na co dzień korzystam z programu FastKeys, który usprawnia wiele zadań. Opisywałem go w tym artykule. Jeśli jeszcze go nie czytałeś to szybko to nadrób i wracaj tutaj. Pomyślałem, że skoro automatyzuje nim wpisywanie maili, numeru telefonu, to czemu nie uprościć sobie za jego pomocą pracy z Gitem. Zacząłem wymyślać jakich komend używam najczęściej i wpisałem je do FastKeys. Należy wpisy te umieścić w zakładce Text Expander. No więc jakich skrótów używam? Oto one:
gc |
|
ga |
|
gs |
|
gp |
|
gb |
|
gch |
|
gt |
|
gm |
|
Niezrozumiałe może być dla niektórych polecenie {Left}
. Jest polecenie skryptu FastKeys które przesuwa kursor w lewo. Dopisanie po nim liczby(przed klamrą zamykającą }
) określa o ile znaków przesunąć kursor. Dzięki temu kursor przesuwa się w miejsce gdzie mogę coś wpisać(opis commita, tagu lub merge’a).
Myślę, że wszystkie komendy Gita są zrozumiałe, natomiast ostatnie polecenie może przerazić nowicjuszy Gita więc je wytłumaczę:
--no-ff
nie pozwala Gitowi zmergować gałęzi jako fast-forward. Chodzi o to, że by w każdej sytuacji stworzyć widoczny merge, a nie tylko przesunąć wskaźnik. Dokładnie jest to opisane w Git-scm book
-e
mówi gitowi, żeby otworzył edytor w którym wpiszemy nazwę merge’a zamiast dodawać do niego swój standardowy opis. Często nie korzystam już z tej opcji na rzecz następnego przełącznika
-m
po tym wpisujemy w apostrofach lub cudzysłowie nazwę merge’a która pojawi się w historii. Tę nazwę będziemy mogli wyedytować, lub coś do niej dopisać zaraz po zatwierdzeniu komendy dzięki poprzedniemu przełącznikowi -e.
Dodatkowo w polu Okno każdej z tych komend wpisane mam: ahk_class mintty
To gwarantuje wywołanie powyższych skrótów tylko w konsoli Git Bash. Dzięki temu skróty te nie rozwijają się gdy np. piszę posty 🙂
Tak proste komendy skracają znacznie czas jaki potrzebujemy na używanie Gita. Ja najpierw bardzo polubiłem pracę z gitem, a później bardzo ją sobie ułatwiłem. A Ty jak skracasz sobie czas potrzebny na korzystanie z Gita lub innych narzędzi? Koniecznie daj znać w komentarzu.
W Intellij jest wbudowana obsługa wybranego VCS. Dodatkowo można go połączyć z kontem github. Git ma wtedy swój gui.
Jak najbardziej, wiele IDE ma wbudowaną obsługę GITa. Jednak ja nie lubię korzystać z tych rozwiązań, bo czuję, że nie do końca mam kontrolę nad tym co się dzieje „pod spodem”. IMO jeśli używać GITa za pomocą GUI to dzięki jakiemuś dedykowanemu do tego narzędziu. Np. GitKraken(uważany za najlepszy), czy SmartGit(z tego korzystałem).
Ja podobny problem rozwiązałem nieco inaczej. Część komend, które mogę uzupełniać o dodatkowe przełączniki dodałem jako aliasy do .gitconfig np.
[alias]
undo = reset –soft HEAD^
glog = log –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset’
meld = difftool –dir-diff
dzięki czemu po wpisaniu git meld uruchamia mi się narzędzie do rozwiązywania konfliktów i diffów.
Natomiast jeśli chodzi o ‚dwuliterkowce,’ to w katalogu ze skryptami, który mam domyślnie dodany do zmiennej środowiskowej Path trzymam skrypty powershella zatytułowane np. ‚gs.ps1’. Dzięki temu gdziekolwiek bym nie był w konsoli wystarczy, że wpiszę gs, by wywołać komendę ‚git status’ 🙂
Tylko właśnie ja chciałem uniknąć ciągłego wpisywania aliasów w gicie. Bo szybciej jest właśnie wpisać gs niż np. git gs. Aczkolwiek jeśli chcesz dodawać przełączniki do tych komend to jest to fajna opcja. Dzięki za podpowiedź dodatkowych komend 😉