LazyGit – program do obsługi gita dla leniwych?

Ostatnio na Twitterze trafiłem na nowy program do gita o nazwie: LazyGit. Na pierwszy rzut oka przypomina aplikacje DOSowe z lat 90 🙂 , ale jakoś bardzo mnie to nie odstrasza.

lazygit demo

Na stronie mają napisane:

Czy jesteś zmęczony pisaniem każdego polecenia git bezpośrednio w terminalu, ale jesteś zbyt uparty, by użyć Sourcetree, ponieważ nigdy nie wybaczysz Atlassianowi za zrobienie Jiry? To jest ta aplikacja dla Ciebie!

Pomimo tego, że mnie nie przeszkadza pisanie poleceń w terminalu (mam swoje aliasy, które bardzo usprawniają pracę 🙂 ) to postanowiłem dać szansę i przetestować to narzędzie.

Wygląd jest bardzo czytelny. Okno podzielone jest na kilka paneli:

  • Status – informacje na jakim branchu pracujemy. Ile mamy commitów “do przodu”, ile jesteśmy “w tyle” za branchem zdalnym.
  • Files – lista zmienionych plików.
  • Branches – lista branchy.
  • Commits – historia commitów w aktualnym branchu.
  • Stash – informacje o rzeczach odłożonych na później.
  • Diff – pokazanie zmian w pliku.

Wszystko oczywiście obsługuje się przy pomocy klawiatury. Na samym dole są informacje o skrótach klawiszowych działające w aktualnie aktywnym panelu. Na gifie z początku posta ten dolny niebieski panel wygląda ładnie, jednak na Windowsie jest to całkowicie nie czytelne.

Testy na żywym organizmie

Po około 4 godzinach używania go w pracy mogę śmiało powiedzieć, że LazyGit jeszcze nie nadaje się do codziennej pracy. Z dwóch powodów:

  1. Jest niedopracowany, czasami bardzo spowalnia.
  2. Brakuje mu jeszcze wielu opcji.

Ad. 1

  • Chciałem zrobić prostą rzecz: merge z feature brancha do develop. Za nic w świecie nie mogłem tego zrobić. Miałem włączony mój feature branch, ustawiłem wskaźnik na develop, nacisnąłem klawisz m i nic 🙁
  • Innym razem dodawałem zmiany do stage’a przy pomocy opcji patch. Dla tej opcji uruchamiany jest Vim (mój domyślny edytor dla gita) i kolejno dodaje się porcje kodu do stage’a. Po skończeniu wraca automatycznie do LazyGit. Zauważyłem, że po takiej operacji (po powrocie z vima) aplikacja zawsze zwalnia. Przejście między kolejnymi opcjami wymaga dłuższego przyciśnięcia klawisza, opóźnienie jest nawet kilku sekundowe. Tak nie da się pracować. Pomaga jedynie zamknięcie i odpalenie programu na nowo.

  • Panel diff – scrollować można tylko po jednej linii. Nie można przewinąć całego ekranu. Przy większych zmiana na pewno będzie irytujące.

Ad. 2

Jakich opcji brakuje? Wymienię kilka:

  • Nie można dodać naraz wszystkich plików z working directory do stage’a. Trzeba przejść przez wszystkie i na każdym nacisnąć SPACE.
  • Nie można zrobić interactive rebase. Można tylko edytować wiadomość ostatniego commita. Można tylko zrobić squash commita ostatniego do poprzedniego.

Podsumowanie

Projekt powstał 13 maja, więc ma dopiero 3 miesiące. Pewnie jeszcze się rozwinie. W momencie pisania tego posta na githubie ma zgłoszonych 40 issue oraz 4 pull requestów. Widać się coś się dzieje. Jednak trzeba poczekać, aż zostaną poprawione różne błędy oraz dodane nowe funkcjonalności. Wtedy będzie można jeszcze raz sprawdzić czy aplikacja nadaje się do produkcyjnej pracy.

Źródło: https://github.com/jesseduffield/lazygit

Jeśli spodobał Ci się ten wpis i chcesz otrzymywać powiadomienia o nowych treściach dotyczących zagadnień związanych z Gitem, to zachęcam do subskrypcji mojego bloga.

3 thoughts on “LazyGit – program do obsługi gita dla leniwych?

  1. Pingback: dotnetomaniak.pl
  2. Co do Sourcetree to u mnie przegrał przy pierwszym teście. Zrobiłem testowy projekt w katalogu „usuń”. Okazało się, że Sourcetree ma problem z polskimi znakami w ścieżkach.
    Pomimo tego, że rzadko używam polskich nazw w ścieżkach projektowych to jednak nie mogę zaufać programowi, który nie radzi sobie z taką podstawową rzeczą.

    1. Ja to SourceTree tylko pomocniczo używam, głównie to konsola. SourceTree używam tylko w kilku przypadkach: jak chcę większy diff przejrzeć, albo jak muszę kilka plików do stage’a dodać i wiem, że przez SourceTree będzie szybciej.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *