Więc jaki sens jest korzystania z konsoli? Ma ona jakieś "super moce" w Gicie w stosunku do nakładek graficznych? Na co dzień w pracy wszystko klepiecie ręcznie czy jednak żeby było szybko i sprawnie korzystacie z jakichś dodatkowych narzędzi?
Niektóre bardziej zaawansowane operacje lepiej robić za pomocą konsoli. Niektóre trzeba robić przez konsolę, jeśli GUI jest upośledzone i się nie da. Ale jeśli wygodnie pracuje Ci się na co dzień z GUI, to nie widzę sensu w zmianie przyzwyczajeń na siłę, tylko po to, żeby móc się polansować znajomością konsoli.
Konsola w przeciwieństwie do pluginów jest mniej więcej wszędzie taka sama, tzn. niezależnie od tego czy ktoś pracuje na linuxie czy windowsie, lub czy pracuje w Eclipsie, Visual Studio czy Notatniku to zawsze może tak samo użyć GITa "konsolowego" przez co uczy się uniwersalnej wiedzy i komend, a nie uzależnia się od konkretnego dodatku do konkretnego IDE
Ale nie trzeba używać dodatków do IDE, można używać normalnego graficznego klienta, który jest taki sam na wszystkich platformach i tak samo się go obsługuje.
Co Wy macie z tymi myszkami? Korzystanie z GUI nie oznacza konieczności używania myszki i klikania. Istnieje coś takiego jak skróty klawiaturowe. Za to GUI bardzo dobrze wizualizuje historię commitów i zmiany między nimi, zawartość katalogu roboczego i indeksu, konflikty. Moim zdaniem dużo lepiej niż konsola, która nie wizualizuje niczego, no ale to pewno kwestia przyzwyczajeń i wzroku.
Poza tym git pod Linusem dobrze integruje się z shellem, tab
podpowiada wszystko nazwy komend, nazwy branch'y, nazwy zmienionych plików (strasznie mi tego brakuje na innych platformach).
Doskonałe rozwiązanie problemów nieznanych podczas korzystania z GUI. :)
Poza tym nie wyobrażam sobie robić rebase za pomocą nakładki (Source Tree) szczególnie jeśli w grę wchodzą trzy branche (miałem prę takich przypadków). Przy zaawansowanych rzeczach, piszczac w konsoli wiem co się stanie, w SourceTree efekt bywa nieprzewidywalny.
Bo SourceTree jest c****. Wystarczy spojrzeć na to cukierkowe GUI, żeby stwierdzić, że to się do niczego nie nadaje.
- jeśli nie chcę zrobić czegoś trywialnego (nowy commit/push/pull/merge) tylko np. commit --amend to tracę sporo czasu na odszukanie takiej opcji (o ile w ogóle to jest możliwe z poziomu gui)
Banał.
- co gdy pracuję na rebase flow zamiast merge? (3 dni szukania opcji o ile istnieją) Widział ktoś kiedyś rebase interactive w kliencie gui?
Ja.
Żaden problem.
- jak chcę zrobić alias na push do refs/for/master z jakimiś przełącznikami i pod jakimiś warunkami to jak to wyklikać z poziomu gui i jak to zarejestrować jako macro?
Aliasy to typowo konsolowe wspomagacze, więc jaki byłby sens robienia tego przez GUI?
- w gui da radę konfigurować git log? (patrz pkt z aliasami)
Po co?
- git to nie tylko kontrola wersji, więc jak to wygląda z integracją z pozostałymi toolami?
Konkretnie którymi? Bo zdaje sie, że twórcy gita uważają go właśnie za system kontroli wersji.
- najgorzej to jest w ogóle gdy ktoś coś skopie w lokalnym drzewku (zdarza mi się do bardzo często ; p).
No i to jest właśnie dowód na "wyższość" konsoli...
Nie mam zamiaru nikogo do niczego przekonywać, niech każdy używa, co mu wygodnie, ale niech ludzie, którzy porządnego klienta GUI nie widzieli na oczy, nie piszą, że nic się w nich nie da zrobić, bo to trochę śmieszne.
P.S. Ja wciskam ctrl + spacja, otwiera mi się okno ze wszystkimi zmianami w katalogu roboczym, przechodzę po plikach widząc natychmiast to, co się w nich zmieniło, alt + s dodaje mi plik do indeksu, potem 2 x tab, wpisuję komentarz i wciskam ctrl + enter, żeby zrobić commit. Ile poleceń muszę wydać w konsoli, żeby osiągnąć ten sam efekt?