GitUI mang lại sự thoải mái của GUI trong terminal
- Có thể thao tác nhanh và trực quan chỉ bằng bàn phím
- Cung cấp trợ giúp theo ngữ cảnh nên không cần phải ghi nhớ phím tắt
- Xem lại thay đổi, commit, sửa commit (bao gồm hook: pre-commit, commit-msg, post-commit, prepare-commit-msg)
- Stage, unstage, hoàn tác và reset theo file, hunk, dòng
- Stash (lưu, áp dụng, xóa, kiểm tra)
- Push/fetch với remote
- Danh sách branch (tạo, đổi tên, xóa, checkout, remote)
- Duyệt/tìm kiếm log commit, xem diff của các thay đổi đã commit
- Giao diện terminal phản hồi nhanh
- API git bất đồng bộ để thao tác mượt mà
- Hỗ trợ submodule
Động lực
- Dù thực hiện phần lớn công việc git trong terminal, tác giả vẫn thường dùng git GUI cho một số trường hợp như index, commit, diff, stash, blame và log.
- Trên các repository lớn, những git GUI phổ biến thường bị treo hoặc không thể sử dụng.
- GitUI mang lại trải nghiệm người dùng và sự thoải mái của git GUI ngay trong terminal, đồng thời có tính di động cao, nhanh, miễn phí và mã nguồn mở.
Benchmark
- Trong bài trình bày tại meetup RustBerlin,
lazygit, tig, gitui được so sánh bằng cách phân tích toàn bộ repository git của Linux (chứa hơn 900.000 commit):
gitui: 24 giây ✅, 0.17GB bộ nhớ ✅, binary 1.4MB, không bị treo ✅, không crash ✅
lazygit: 57 giây, 2.6GB bộ nhớ, binary 16MB, có treo, đôi khi crash
tig: 4 phút 20 giây, 1.3GB bộ nhớ, binary 0.6MB ✅, đôi khi treo, không crash ✅
Lộ trình hướng tới 1.0
- Mục tiêu cấp cao trước khi công bố
1.0:
- Trực quan hóa cấu trúc branch trong tab log (#81)
- Interactive rebase (#32)
Các hạn chế đã biết
- Không hỗ trợ sparse repo (#1226)
- Không hỗ trợ ký GPG (#97)
- Không hỗ trợ git-lfs (#1089)
- credential.helper cần https phải được cấu hình tường minh (#800)
- Hiện tại công cụ này chưa thay thế hoàn toàn được git shell, nhưng hai công cụ phối hợp rất tốt với nhau.
- Ưu tiên của
gitui là những tính năng bất tiện khi thực hiện trong git shell, ví dụ như stash, stage theo dòng hoặc hunk.
- Cuối cùng có thể biến
gitui thành một giải pháp one-stop, nhưng để làm được điều đó cần có sự trợ giúp - hiện tại đây là một dự án làm trong thời gian rảnh.
- Mọi hỗ trợ và tài trợ đều được hoan nghênh! ❤️
Cài đặt
- GitUI đang ở phiên bản beta và có thể có lỗi cũng như thiếu tính năng. Tuy nhiên, nó khá ổn định cho nhu cầu sử dụng cá nhân và cũng đang được dùng trong quá trình phát triển.
- Có thể cài đặt thông qua nhiều trình quản lý gói khác nhau.
Build
- Phiên bản
rust/cargo tối thiểu được hỗ trợ: 1.65
- Yêu cầu để build dependency openssl (tham khảo https://docs.rs/openssl/latest/openssl/)
- Cần có Python để chạy đầy đủ bộ test (
python phải có thể được gọi như vậy)
- Cách đơn giản nhất để build và cài đặt
gitui là dùng cargo install gitui.
Câu hỏi thường gặp (FAQs)
Chẩn đoán
- Chạy
gitui -l khi bật logging để ghi log.
Chủ đề màu sắc
gitui tự động hoạt động với cả terminal dùng theme sáng và theme tối.
- Có thể tùy biến mọi thứ theo sở thích.
Phím gán
- Có thể tùy chỉnh phím gán.
Tài trợ
Cảm hứng
- Lấy cảm hứng từ
lazygit, tig, GitUp và nhiều công cụ khác.
- Sẽ rất hay nếu nghĩ ra cách sử dụng map view trong các công cụ terminal.
Ý kiến của GN⁺
- GitUI mang đến sự tiện lợi của GUI cho những người dùng yêu thích terminal, đồng thời nổi bật với tốc độ nhanh và mức sử dụng bộ nhớ thấp. Điều này đặc biệt quan trọng khi làm việc với các repository lớn.
- Là một dự án mã nguồn mở, nó tiếp tục phát triển nhờ sự hỗ trợ và đóng góp từ cộng đồng lập trình viên, đồng thời cải thiện tính năng bằng cách phản ánh phản hồi từ người dùng.
- GitUI có vẻ là một công cụ giúp các nhà phát triển thực hiện công việc git hiệu quả ngay trong môi trường terminal, đặc biệt hữu ích với những người đã quen thao tác bằng bàn phím.
1 bình luận
Ý kiến trên Hacker News