GitUI menghadirkan kenyamanan GUI di terminal
- Dapat dioperasikan dengan cepat dan intuitif hanya dengan keyboard
- Tanpa perlu menghafal hotkey, tersedia bantuan sesuai konteks
- Meninjau perubahan, commit, amend commit (termasuk hook: pre-commit, commit-msg, post-commit, prepare-commit-msg)
- Staging, unstaging, membatalkan, dan reset file, hunk, serta baris
- Stash (simpan, terapkan, hapus, periksa)
- Push/fetch ke/dari remote
- Daftar branch (buat, ganti nama, hapus, checkout, remote)
- Menelusuri/mencari log commit, memeriksa diff perubahan yang sudah di-commit
- UI terminal yang responsif
- API git asinkron untuk operasi yang lancar
- Dukungan submodule
Motivasi
- Banyak pekerjaan git dilakukan di terminal, tetapi untuk beberapa use case seperti index, commit, diff, stash, blame, dan log, GUI git masih sering digunakan.
- Pada repositori besar, GUI git yang populer sering kali menjadi tidak responsif atau tidak bisa digunakan.
- GitUI menghadirkan pengalaman pengguna dan kenyamanan GUI git di dalam terminal, sekaligus portabel, cepat, gratis, dan open source.
Benchmark
- Dalam presentasi meetup RustBerlin,
lazygit, tig, dan gitui dibandingkan dengan mem-parsing seluruh repositori git Linux (berisi lebih dari 900 ribu commit):
gitui: 24 detik ✅, memori 0.17GB ✅, biner 1.4MB, tanpa freeze ✅, tanpa crash ✅
lazygit: 57 detik, memori 2.6GB, biner 16MB, ada freeze, kadang crash
tig: 4 menit 20 detik, memori 1.3GB, biner 0.6MB ✅, kadang freeze, tanpa crash ✅
Roadmap menuju 1.0
- Sasaran tingkat tinggi sebelum mendeklarasikan
1.0:
- Visualisasi struktur branch di tab log (#81)
- Rebase interaktif (#32)
Keterbatasan yang diketahui
- Tidak mendukung sparse repo (#1226)
- Tidak mendukung penandatanganan GPG (#97)
- Tidak mendukung git-lfs (#1089)
- credential.helper yang memerlukan https harus dikonfigurasi secara eksplisit (#800)
- Saat ini alat ini belum sepenuhnya menggantikan git shell, tetapi keduanya bekerja sama dengan baik.
- Prioritas
gitui adalah fitur-fitur yang kurang nyaman dilakukan di git shell, seperti stash serta staging per baris atau hunk.
- Pada akhirnya
gitui bisa menjadi solusi satu atap, tetapi untuk itu dibutuhkan bantuan — saat ini ini adalah proyek waktu luang.
- Semua dukungan dan sponsor sangat diterima! ❤️
Instalasi
- GitUI adalah versi beta dan mungkin masih memiliki bug serta fitur yang belum lengkap. Namun, untuk penggunaan pribadi sudah cukup stabil, dan juga digunakan selama pengembangan.
- Dapat diinstal melalui berbagai package manager.
Build
- Versi minimum
rust/cargo yang didukung: 1.65
- Persyaratan untuk membangun dependensi openssl (lihat https://docs.rs/openssl/latest/openssl/)
- Python diperlukan untuk menjalankan test suite lengkap (harus bisa dipanggil dengan
python)
- Cara termudah untuk membangun dan memasang
gitui adalah melalui cargo install gitui.
Pertanyaan yang sering diajukan (FAQs)
Diagnostik
- Jika dijalankan dengan
gitui -l saat logging diaktifkan, log akan dicatat.
Tema warna
gitui bekerja otomatis baik di terminal bertema terang maupun gelap.
- Semuanya bisa disesuaikan sesuai selera.
Key binding
- Key binding dapat dikustomisasi.
Sponsor
Inspirasi
- Terinspirasi dari
lazygit, tig, GitUp, dan lainnya.
- Akan menarik untuk menemukan cara menggunakan tampilan peta pada alat terminal.
Opini GN⁺
- GitUI menghadirkan kenyamanan GUI bagi pengguna yang lebih menyukai terminal, sambil menawarkan kecepatan tinggi dan penggunaan memori yang rendah. Hal ini sangat penting terutama saat menangani repositori besar.
- Sebagai proyek open source, GitUI terus berkembang melalui dukungan dan kontribusi dari komunitas pengembang, serta meningkatkan fitur dengan mencerminkan umpan balik pengguna.
- GitUI tampaknya merupakan alat yang membantu developer bekerja dengan git secara efisien di lingkungan terminal, terutama sangat berguna bagi pengguna yang terbiasa dengan operasi berbasis keyboard.
1 komentar
Komentar Hacker News