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)
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
Hacker News görüşleri