10 poin oleh GN⁺ 2024-01-08 | 1 komentar | Bagikan ke WhatsApp

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)

  • Lihat halaman 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

 
GN⁺ 2024-01-08
Komentar Hacker News
  • Kontrol yang cepat dan intuitif hanya dengan keyboard

    • Pengguna kemungkinan membuat program ini dengan niat baik, tetapi pada percobaan pertama setelah instalasi, ukuran jendela xterm atau panel pohon file tidak bisa diubah. Fitur itu juga tidak dapat ditemukan lewat keyboard, dan jika ukuran bisa diubah dengan mouse, hal itu akan jauh lebih mudah dan cepat.
  • Proyek yang terinspirasi dari lazygit

    • Sebagai pengguna lazygit, saya penasaran apa yang kurang dari lazygit. lazygit digunakan dengan sangat berguna.
  • Kegagalan git GUI populer pada repositori besar

    • Saya pernah mengalami masalah bahwa pengecekan status git memakan waktu lama pada repositori besar atau struktur direktori yang dalam. Saya ragu apakah benar ada perbedaan nyata antara GUI, TUI, dan command line.
  • Harapan terhadap proyek baru

    • Saya berharap GitExtensions di-porting menjadi aplikasi native Linux. Saya sudah mencoba berbagai UI, tetapi belum menemukan yang sebaik GitExtensions.
  • Pertanyaan tentang UI klik-dan-seret

    • Saya penasaran apakah ada UI untuk git yang memungkinkan pekerjaan branch dilakukan dengan drag and drop.
  • Pengalaman menggunakan plugin Neogit

    • Ini mirip dengan plugin Neogit yang mulai saya gunakan sekitar sebulan lalu. Awalnya key binding terasa sulit, tetapi setelah terbiasa, jauh lebih cepat daripada workflow sebelumnya.
  • Pengalaman pribadi menggunakan alat

    • Saya sudah mencoba berbagai alat, tetapi selalu ada fitur penting yang hilang atau tidak bekerja seperti yang saya inginkan, jadi akhirnya kembali ke tig. Di GitUI, masih kurang fitur yang menampilkan struktur branch dengan baik.
  • Alat yang digunakan sehari-hari

    • Sebagai alat yang saya gunakan setiap hari, ini sangat sederhana dan bagus. Perlu dicatat bahwa untuk menandatangani commit, Anda harus menggunakan Git itu sendiri.
  • Tautan terkait

    • Disediakan tautan kumpulan komentar Hacker News terkait GitUI: Terminal UI for Git, Terminal-UI for Git written in Rust.
  • Pertanyaan tentang keunggulan tertentu dari penggunaan GUI

    • Seorang pengguna yang belum pernah menggunakan GUI ingin mempelajari keunggulan spesifik apa yang bisa didapat dari penggunaan GUI.