Narzędzie git-istage – dodawanie plików do stage’a. Lepsza alternatywa dla polecenia git add -p

Opublikowane przez Tomasz Prasołek w dniu

W tym poście chciałem Ci pokazać narzędzie git-istage. Służy ono głównie do dodawania plików do stage’a, cofania plików do katalogu roboczego – ogólnie do zarządzania plikami między tymi dwoma stanami. Ma jeszcze kilka opcji, ale to jest jego główne zadanie.

Narzędzie powstało w październiku 2018, autorem jest Immo Landwerth, który na co dzień pracuje w Microsofcie. Ostatnio robi live’y na YouTube gdzie pisze własny kompilator 🙂

Instalacja

Jest to narzędzie konsolowe, stworzone jako .NET Core Global Tools. Do zainstalowania tego typu narzędzi wymagane jest zainstalowanie .NET Core 2.1 SDK lub nowszego. Dystrybucja jest przez menedżer pakietów Nuget: https://www.nuget.org/packages/git-istage. Można to narzędzie zainstalować z poziomu konsoli wpisując:

dotnet tool install git-istage -g

Uruchamiamy go wpisując:

git istage

Po uruchomieniu nasze zmiany w  kodzie są przedstawione w taki sam sposób jak to widać po wykonaniu polecenia git diff.

git istage wygląd

Na górnej belce mamy nazwę pliku. Litera W oznacza, że jesteśmy w widoku zmian pochodzących z naszego katalogu roboczego. Na dolnej belce są informacje o branchu oraz o liczbie zmian w stage oraz w katalogu roboczym. Po środku widać wprowadzone przez Nas zmiany.

Główne możliwości

W tytule tego posta napisałem, że jest to lepsza alternatywa dla polecenia:

git add -p

Opcja -p to skrót od słowa patch. Równie dobrze można wpisać polecenie:

git add --patch

W czym jest to narzędzie lepsze? Porównajmy te 2 narzędzia. W git-istage bardzo łatwo przechodzi się między poszczególnymi kawałkami kodu, nawet między plikami. Służą do tego skróty klawiszowe:

[ – przejście do poprzedniego kawałka kodu (hunk)
] – przejście do następnego kawałka kodu
Strzałka w lewo – przejście do poprzedniego pliku
Strzałka w prawo – przejście do następnego pliku (napisałem tekstowo “Strzałka” zamiast ikonki, bo nie wiem jak w nowym edytorze w WordPressie to zrobić 🙂 )

Nie trzeba nic zrobić z kawałkiem kodu, którym nie chcemy się obecnie zajmować. Skoro go nie wybraliśmy to znaczy, że nie chcemy go dodawać do stage’a 🙂 W opcji patch musimy zaznaczyć, że nie chcemy go dodawać do stage’a. Bez tego wyboru opcja nie pokaże Nam kolejnego kawałka kodu w tym pliku.

Poza tym w opcji patch, jest do wyboru opcja leave this hunk undecided, see next undecided hunk, która działa tylko w obrębie jednego pliku. W projekcie testowym zrobiłem po jednej zmianie w 3 plikach i chciałem użyć tej opcji, aby przejść do następnego kawałka kodu. Nie da się, pokazuje się informacja No next hunk i widać cały czas ten sam kawałek kodu 🙁

Po zaznaczeniu określonego kawałka kodu bardzo łatwo można go dodać do stage’a. W aplikacji można również jednym klawiszem – T – zmieniać widok pomiędzy stage’a, a katalogiem roboczym. Widać bardzo dokładnie co już dodaliśmy do stage’a, a co nie.

Fajną opcją jest możliwość powiększania ilości pokazywanych linii. Przy pomocy przycisków + i - zwiększamy ilość linii kodu widocznych wokół naszego zaznaczonego kawałka kodu.

git istage contextual lines 01
Na zielono widać dodane 2 linie. Na tą i pod tą zmianą widać tylko po 3 linie.
git istage contextual lines 02
Tutaj widać więcej linii nad i pod naszą zmianą. Kliknij w obrazek, aby powiększyć.
Dodatkowe opcje

Kolejną przydatną opcją jest możliwość dodania do stash’a  bezpośrednio z poziomu tego narzędzia. Załóżmy taką sytuację, że dodaliśmy określony kod do stage’a, parę rzeczy zostało w katalogu roboczym. Chcemy się upewnić czy po wrzuceniu kodu na serwer wszystko będzie działać. Naciskami ALT + S i do stasha dodają się wszystkie pliki znajdujące się w working directory. Sprawdzamy czy nasz projekt działa – kompilujemy, odpalamy testy jednostkowe (jeśli je mamy 🙂 ) – i możemy dalej pracować.

No i na koniec jak już zdecydowaliśmy co chcemy commitować, to możemy również i to zrobić. Mamy 2 opcje:

C – commit
ALT + C – commit –amend

Po wybraniu jednej z tych opcji uruchomi się domyślnie ustawiony edytor tekstu, gdzie możemy wpisać tekst wiadomości dla commita. Niestety w mojej konfiguracji (cmder + Git Bash + vim) to nie działa 🙁 Jednak jak zmieni się vima na np. Sublime Text 3 to wszystko działa jak powinno.

Wszystkie skróty klawiszowe aplikacji są dostępne pod przyciskiem F1.

Podsumowanie

To narzędzie bardzo przyśpieszyło moją pracę. Wcześniej jak chciałem dodać konkretny kawałek kodu uruchamiałem narzędzie SourceTree i tam musiałem to zrobić. Na początku nie znałem dodawania do stage’a z opcją patch, a później jak już się o tym dowiedziałem, to i tak wolałem korzystać z GUI. Teraz robię to wszystko bez opuszczania konsoli. Po chwili przyzwyczajenia, obsługuje się je bardzo szybko, nie sprawia żadnych problemów.

Jeśli chcecie zobaczyć jak to działa w praktyce, autor tego narzędzia nagrał krótki tutorial, który jest dostępny na YouTube. Więcej informacji o tym narzędziu możecie przeczytać w jego dokumentacji na Github.

Źródło:
https://github.com/terrajobst/git-istage


1 Komentarz

dotnetomaniak.pl · 23 grudnia 2018 o 17 h 10 min

Narzędzie git-istage – dodawanie plików do stage’a. Lepsza alternatywa dla polecenia git add -p – Tomasz Prasołek

Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *