10 puan yazan GN⁺ 2024-01-08 | 1 yorum | WhatsApp'ta paylaş

GitUI, terminalde GUI rahatlığı sunar

  • Yalnızca klavyeyle hızlı ve sezgisel kullanım
  • Kısayol tuşlarını ezberlemeyi gerektirmeyen, bağlama duyarlı yardım
  • Değişiklikleri gözden geçirme, commit, amend commit (hook desteğiyle: pre-commit, commit-msg, post-commit, prepare-commit-msg)
  • Dosya, hunk ve satır bazında stage etme, stage’den çıkarma, geri alma ve sıfırlama
  • Stash işlemleri (kaydetme, uygulama, silme, inceleme)
  • Uzak depoya push/fetch
  • Branch listesi (oluşturma, yeniden adlandırma, silme, checkout, uzak branch’ler)
  • Commit logunda gezinme/arama, commit edilmiş değişikliklerin diff’ini inceleme
  • Duyarlı terminal arayüzü
  • Akıcı kullanım için asenkron git API’si
  • Alt modül desteği

Motivasyon

  • Git işlemlerinin çoğunu terminalde yapıyorum, ancak index, commit, diff, stash, blame ve log gibi bazı kullanım senaryolarında sık sık git GUI kullanıyorum.
  • Büyük depolarda popüler git GUI’ler çoğu zaman yanıt vermemeye başlıyor veya kullanılamaz hale geliyor.
  • GitUI, terminal içinde git GUI’nin kullanıcı deneyimini ve rahatlığını sunarken aynı zamanda taşınabilir, hızlı, ücretsiz ve açık kaynaklıdır.

Benchmark

  • RustBerlin meetup sunumunda lazygit, tig, gitui karşılaştırılarak Linux git deposunun tamamı (900 binden fazla commit içeriyor) parse edildi:
    • gitui: 24 saniye ✅, 0.17GB bellek ✅, 1.4MB ikili dosya, donma yok ✅, çökme yok
    • lazygit: 57 saniye, 2.6GB bellek, 16MB ikili dosya, donma var, ara sıra çöküyor
    • tig: 4 dakika 20 saniye, 1.3GB bellek, 0.6MB ikili dosya ✅, ara sıra donuyor, çökme yok

1.0’a giden yol haritası

  • 1.0 ilan edilmeden önceki yüksek seviyeli hedefler:
    • Log sekmesinde branch yapısının görselleştirilmesi (#81)
    • Etkileşimli rebase (#32)

Bilinen sınırlamalar

  • Sparse repository desteği yok (#1226)
  • GPG imza desteği yok (#97)
  • git-lfs desteği yok (#1089)
  • https gerektiren credential.helper açıkça ayarlanmalıdır (#800)
  • Şu anda bu araç git shell’in tamamen yerini almıyor, ancak iki araç birlikte iyi çalışıyor.
  • gituinin önceliği, git shell içinde yaparken rahatsız edici olan işlevlerdir; örneğin stash işlemleri, satır veya hunk stage etme gibi.
  • Sonunda gitui tek duraklı bir çözüme dönüşebilir, ancak bunun için yardıma ihtiyaç var — şu anlık boş zaman projesi.
  • Her türlü destek ve sponsorluk memnuniyetle karşılanır! ❤️

Kurulum

  • GitUI beta sürümdedir ve hatalar ile eksik özellikler içerebilir. Ancak kişisel kullanım için oldukça kararlıdır ve geliştirme sırasında da kullanılmaktadır.
  • Çeşitli paket yöneticileri üzerinden kurulabilir.

Derleme

  • Desteklenen minimum rust/cargo sürümü: 1.65
  • openssl bağımlılığını derlemek için gereksinimler (bkz. https://docs.rs/openssl/latest/openssl/)
  • Tam test paketini çalıştırmak için python gerekir (python olarak çağrılabilmelidir)
  • cargo install gitui ile gituiyi derleyip kurmak en kolay yoldur.

Sık sorulan sorular (SSS)

  • SSS sayfasına bakın

Tanılama

  • Loglamayı etkinleştirerek gitui -l ile çalıştırırsanız log kaydı tutulur.

Renk temaları

  • gitui, hem açık tema hem koyu tema kullanan terminallerde otomatik olarak çalışır.
  • Her şeyi zevkinize göre özelleştirebilirsiniz.

Tuş atamaları

  • Tuş atamaları özelleştirilebilir.

Sponsorluk

İlham

  • lazygit, tig, GitUp ve benzerlerinden ilham alınmıştır.
  • Terminal araçlarında map view’ün nasıl kullanılabileceğine dair fikir üretmek iyi olurdu.

GN⁺ görüşü

  • GitUI, terminali tercih eden kullanıcılara GUI’nin rahatlığını sunarken aynı zamanda yüksek hız ve düşük bellek kullanımı vaat ediyor. Bu, özellikle büyük depolarla çalışırken çok önemlidir.
  • Bir açık kaynak proje olarak, geliştirici topluluğunun desteği ve katkılarıyla sürekli gelişiyor; kullanıcı geri bildirimlerini yansıtarak özelliklerini iyileştiriyor.
  • GitUI, geliştiricilerin terminal ortamında da git işlemlerini verimli şekilde yapmasına yardımcı olan bir araçtır; özellikle klavye kullanımına alışkın kullanıcılar için oldukça faydalı görünüyor.

1 yorum

 
GN⁺ 2024-01-08
Hacker News görüşleri
  • Yalnızca klavyeyle hızlı ve sezgisel kontrol

    • Kullanıcı muhtemelen programı iyi niyetle yapmıştır, ancak kurulumdan sonraki ilk denemede xterm pencere boyutunu ya da dosya ağacı penceresinin boyutunu değiştirmek mümkün değildi. Klavyeyle de bu işlev bulunamadı; fareyle boyutlandırma mümkün olsaydı çok daha kolay ve hızlı olurdu.
  • lazygit'ten ilham alan proje

    • Bir lazygit kullanıcısı olarak, lazygit'te eksik olanın ne olduğunu merak ediyorum. lazygit'i oldukça faydalı buluyorum.
  • Büyük depolarda popüler git GUI'lerinin başarısızlığı

    • Büyük depolarda ya da derin dizin yapılarında git durumunu kontrol etmenin uzun sürmesi sorununu yaşadım. GUI, TUI ve komut satırı arasında gerçekten bir fark olup olmadığını merak ediyorum.
  • Yeni proje için beklenti

    • GitExtensions'ın Linux yerel uygulaması olarak taşınmasını isterdim. Çeşitli arayüzleri denedim ama GitExtensions kadar iyisini bulamadım.
  • Tıkla-ve-sürükle arayüzü hakkında soru

    • Git'te branch işlemlerini sürükle-bırak ile yapabilen bir arayüz olup olmadığını merak ediyorum.
  • Neogit eklentisini kullanma deneyimi

    • Yaklaşık bir ay önce kullanmaya başladığım Neogit eklentisine benziyor. İlk başta tuş atamalarına alışmak zordu, ama alışınca önceki iş akışımdan çok daha hızlı oldu.
  • Kişisel araç kullanımı deneyimi

    • Çeşitli araçları denedim ama her zaman ya önemli bir özellik eksik kaldı ya da istediğim gibi çalışmadı; sonunda yine tig'e geri dönüyorum. GitUI'de branch yapısını iyi gösteren bir özellik eksik.
  • Günlük kullanılan araç

    • Her gün kullandığım bir araç olarak çok basit ve harika. Commit imzalamak için Git'in kendisini kullanmanız gerektiğini not edin.
  • İlgili bağlantı

    • GitUI: Terminal UI for Git, Rust ile yazılmış Git için Terminal-UI hakkında Hacker News yorumlarını derleyen bağlantı veriliyor.
  • GUI kullanmanın belirli avantajları hakkında soru

    • GUI'yi hiç kullanmamış bir kullanıcı, GUI kullanmanın sağlayabileceği belirli avantajların neler olduğunu öğrenmek istiyor.