GitUI มอบความสะดวกแบบ GUI ภายในเทอร์มินัล
- ใช้งานได้รวดเร็วและเข้าใจง่ายด้วยคีย์บอร์ดล้วน
- มีคำแนะนำตามบริบท จึงไม่จำเป็นต้องท่องจำฮอตคีย์
- ตรวจสอบการเปลี่ยนแปลง, คอมมิต, แก้ไขคอมมิต (รวม hook: pre-commit, commit-msg, post-commit, prepare-commit-msg)
- สเตจ, ยกเลิกการสเตจ, ย้อนกลับ และรีเซ็ตไฟล์, hunk และบรรทัด
- Stash (บันทึก, นำมาใช้, ลบ, ตรวจสอบ)
- Push/Fetch กับรีโมต
- รายการบรานช์ (สร้าง, เปลี่ยนชื่อ, ลบ, checkout, รีโมต)
- สำรวจ/ค้นหา commit log และตรวจดู diff ของการเปลี่ยนแปลงที่คอมมิตแล้ว
- เทอร์มินัล UI แบบ responsive
- Git API แบบ asynchronous เพื่อการใช้งานที่ลื่นไหล
- รองรับ submodule
แรงจูงใจ
- แม้จะทำงาน git ส่วนใหญ่ในเทอร์มินัล แต่ก็มักใช้ git GUI บ่อยครั้งในบางงาน เช่น index, commit, diff, stash, blame และ log
- สำหรับรีโพซิทอรีขนาดใหญ่ git GUI ยอดนิยมมักค้างหรือใช้งานไม่ได้
- GitUI มอบประสบการณ์และความสะดวกแบบ git GUI ภายในเทอร์มินัล พร้อมความสามารถในการพกพาสูง รวดเร็ว ฟรี และเป็นโอเพนซอร์ส
เบนช์มาร์ก
- ในการบรรยายที่ RustBerlin meetup ได้เปรียบเทียบ
lazygit, tig, gitui โดยพาร์สรีโพซิทอรี git ของ Linux ทั้งหมด (มีมากกว่า 900,000 commit):
gitui: 24 วินาที ✅, หน่วยความจำ 0.17GB ✅, ไบนารี 1.4MB, ไม่ค้าง ✅, ไม่แครช ✅
lazygit: 57 วินาที, หน่วยความจำ 2.6GB, ไบนารี 16MB, มีอาการค้าง, แครชเป็นครั้งคราว
tig: 4 นาที 20 วินาที, หน่วยความจำ 1.3GB, ไบนารี 0.6MB ✅, ค้างเป็นครั้งคราว, ไม่แครช ✅
โรดแมปสู่ 1.0
- เป้าหมายระดับสูงก่อนประกาศ
1.0:
- แสดงโครงสร้างบรานช์ในแท็บ log (#81)
- interactive rebase (#32)
ข้อจำกัดที่ทราบ
- ไม่รองรับ sparse repo (#1226)
- ไม่รองรับการเซ็น GPG (#97)
- ไม่รองรับ git-lfs (#1089)
- credential.helper ที่ต้องใช้กับ https จำเป็นต้องตั้งค่า อย่างชัดเจน (#800)
- ปัจจุบันเครื่องมือนี้ยังไม่สามารถแทนที่ git shell ได้ทั้งหมด แต่ทั้งสองเครื่องมือทำงานร่วมกันได้ดี
- ลำดับความสำคัญของ
gitui คือฟีเจอร์ที่ทำใน git shell แล้วไม่สะดวก เช่น stash หรือการสเตจทีละบรรทัด/ทีละ hunk
- ในท้ายที่สุด
gitui อาจกลายเป็นโซลูชันแบบครบวงจรได้ แต่ยังต้องการความช่วยเหลือ — ตอนนี้ยังเป็นโปรเจกต์ที่ทำในเวลาว่าง
- ยินดีรับทุกการสนับสนุนและการสปอนเซอร์! ❤️
การติดตั้ง
- GitUI เป็นเวอร์ชันเบตาและอาจมีบั๊กหรือฟีเจอร์ที่ยังขาดอยู่ อย่างไรก็ตาม สำหรับการใช้งานส่วนตัวถือว่าค่อนข้างเสถียร และยังถูกใช้งานอยู่ระหว่างการพัฒนา
- สามารถติดตั้งได้ผ่าน package manager หลากหลายแบบ
การบิลด์
- เวอร์ชันขั้นต่ำที่รองรับของ
rust/cargo: 1.65
- ข้อกำหนดสำหรับการบิลด์ dependency ของ openssl (ดู https://docs.rs/openssl/latest/openssl/)
- ต้องมี python เพื่อรันชุดทดสอบทั้งหมด (ต้องเรียกได้ด้วย
python)
- วิธีที่ง่ายที่สุดในการบิลด์และติดตั้ง
gitui คือใช้ cargo install gitui
คำถามที่พบบ่อย (FAQs)
การวินิจฉัยปัญหา
- หากรัน
gitui -l โดยเปิดใช้งาน logging ระบบจะบันทึก log
ธีมสี
gitui ทำงานได้อัตโนมัติทั้งบนเทอร์มินัลธีมสว่างและธีมมืด
- สามารถปรับแต่งทุกอย่างได้ตามความชอบ
คีย์ไบน์ดิง
- คีย์ไบน์ดิงสามารถปรับแต่งได้
การสนับสนุน
แรงบันดาลใจ
- ได้แรงบันดาลใจจาก
lazygit, tig, GitUp และอื่น ๆ
- น่าจะดีหากคิดวิธีใช้มุมมองแบบแผนที่ในเครื่องมือเทอร์มินัลได้
ความเห็นของ GN⁺
- GitUI มอบความสะดวกของ GUI ให้กับผู้ใช้ที่ชอบเทอร์มินัล พร้อมทั้งโดดเด่นด้านความเร็วและการใช้หน่วยความจำต่ำ ซึ่งสำคัญมากโดยเฉพาะเมื่อจัดการรีโพซิทอรีขนาดใหญ่
- ในฐานะโปรเจกต์โอเพนซอร์ส มันยังคงพัฒนาอย่างต่อเนื่องผ่านการสนับสนุนและการมีส่วนร่วมจากชุมชนนักพัฒนา พร้อมปรับปรุงฟีเจอร์ตามฟีดแบ็กของผู้ใช้
- GitUI เป็นเครื่องมือที่ช่วยให้นักพัฒนาทำงาน git ได้อย่างมีประสิทธิภาพในสภาพแวดล้อมแบบเทอร์มินัล และน่าจะมีประโยชน์อย่างมากสำหรับผู้ใช้ที่คุ้นเคยกับการใช้งานผ่านคีย์บอร์ด
1 ความคิดเห็น
ความคิดเห็นบน Hacker News