10 पॉइंट द्वारा GN⁺ 2024-01-08 | 1 टिप्पणियां | WhatsApp पर शेयर करें

GitUI टर्मिनल में GUI जैसी सहजता देता है

  • सिर्फ कीबोर्ड से तेज़ और सहज संचालन संभव
  • हॉटकी याद रखने की ज़रूरत नहीं पड़ने वाली संदर्भानुसार सहायता उपलब्ध
  • बदलावों की समीक्षा, commit, amend commit (hooks सहित: pre-commit, commit-msg, post-commit, prepare-commit-msg)
  • फ़ाइल, hunk, line की staging, unstaging, revert और reset
  • stashing (save, apply, drop, inspect)
  • remote से push/fetch
  • branch सूची (create, rename, delete, checkout, remote)
  • commit log ब्राउज़/search, committed बदलावों का diff देखना
  • responsive terminal UI
  • सहज संचालन के लिए asynchronous git API
  • submodule समर्थन

प्रेरणा

  • टर्मिनल में ज़्यादातर git काम किए जाते हैं, लेकिन index, commit, diff, stash, blame, log जैसे कुछ उपयोग मामलों में अक्सर git GUI का उपयोग किया जाता है।
  • बड़े repository में लोकप्रिय git GUI अक्सर अनुत्तरदायी हो जाते हैं या उपयोग लायक नहीं रहते।
  • GitUI टर्मिनल के भीतर git GUI जैसा user experience और सहजता देता है, साथ ही यह portable, तेज़, मुफ़्त और open source है।

बेंचमार्क

  • RustBerlin meetup प्रस्तुति में lazygit, tig, gitui की तुलना करते हुए Linux git repository (जिसमें 9 लाख से अधिक commits शामिल हैं) को पूरा parse किया गया:
    • gitui: 24 सेकंड ✅, 0.17GB memory ✅, 1.4MB binary, freeze नहीं ✅, crash नहीं
    • lazygit: 57 सेकंड, 2.6GB memory, 16MB binary, freeze होता है, कभी-कभी crash
    • tig: 4 मिनट 20 सेकंड, 1.3GB memory, 0.6MB binary ✅, कभी-कभी freeze, crash नहीं

1.0 तक का रोडमैप

  • 1.0 घोषित करने से पहले के उच्च-स्तरीय लक्ष्य:
    • log tab में branch संरचना का visualization (#81)
    • interactive rebase (#32)

ज्ञात सीमाएँ

  • sparse repo समर्थन नहीं (#1226)
  • GPG signing समर्थन नहीं (#97)
  • git-lfs समर्थन नहीं (#1089)
  • https की आवश्यकता वाले credential.helper को स्पष्ट रूप से सेट करना होगा (#800)
  • फिलहाल यह टूल git shell का पूरी तरह विकल्प नहीं है, लेकिन दोनों टूल साथ में अच्छी तरह काम करते हैं।
  • gitui की प्राथमिकता उन सुविधाओं पर है जो git shell में करना असुविधाजनक होता है, जैसे stashing, line या hunk staging।
  • अंततः gitui को one-stop solution बनाया जा सकता है, लेकिन इसके लिए मदद की ज़रूरत है — अभी यह spare-time project है।
  • हर तरह का समर्थन और sponsorship स्वागतयोग्य है! ❤️

इंस्टॉलेशन

  • GitUI beta version में है और इसमें bugs तथा कुछ missing features हो सकते हैं। फिर भी व्यक्तिगत उपयोग के लिए यह काफ़ी स्थिर है और विकास के दौरान भी उपयोग में है।
  • इसे विभिन्न package managers के माध्यम से install किया जा सकता है।

बिल्ड

  • न्यूनतम समर्थित rust/cargo संस्करण: 1.65
  • openssl dependency build के लिए आवश्यकताएँ (https://docs.rs/openssl/latest/openssl/ देखें)
  • पूरा test suite चलाने के लिए Python आवश्यक है (इसे python के रूप में callable होना चाहिए)
  • cargo install gitui के माध्यम से gitui को build और install करना सबसे सरल है।

अक्सर पूछे जाने वाले प्रश्न (FAQs)

  • FAQs पेज देखें

डायग्नॉस्टिक्स

  • logging सक्षम अवस्था में gitui -l चलाने पर logs रिकॉर्ड होते हैं।

रंग थीम

  • gitui light theme और dark theme वाले टर्मिनल, दोनों में अपने-आप काम करता है।
  • आप सब कुछ अपनी पसंद के अनुसार customize कर सकते हैं।

की बाइंडिंग

  • key bindings को customize किया जा सकता है।

प्रायोजन

प्रेरणा

  • lazygit, tig, GitUp आदि से प्रेरित।
  • यह सोचना अच्छा होगा कि terminal tools में map view को कैसे उपलब्ध कराया जा सकता है।

GN⁺ की राय

  • GitUI टर्मिनल पसंद करने वाले उपयोगकर्ताओं को GUI की सुविधा देते हुए तेज़ प्रदर्शन और कम memory usage प्रदान करता है। यह खासकर बड़े repository संभालते समय बहुत महत्वपूर्ण है।
  • एक open source project के रूप में, यह developer community के समर्थन और योगदान के साथ लगातार विकसित हो रहा है, और उपयोगकर्ता feedback के आधार पर सुविधाओं में सुधार करता जा रहा है।
  • GitUI ऐसा टूल है जो developers को terminal environment में भी git कार्य कुशलता से करने में मदद करता है, और खासकर कीबोर्ड संचालन के अभ्यस्त उपयोगकर्ताओं के लिए बहुत उपयोगी लगता है।

1 टिप्पणियां

 
GN⁺ 2024-01-08
Hacker News राय
  • सिर्फ़ keyboard से तेज़ और intuitive control

    • प्रोग्राम शायद अच्छे इरादे से बनाया गया होगा, लेकिन install करने के बाद पहली कोशिश में xterm window size बदलना या file tree pane का size बदलना संभव नहीं था। keyboard से भी यह फ़ीचर नहीं मिला, और अगर mouse से resize करना संभव हो तो यह कहीं ज़्यादा आसान और तेज़ होगा।
  • lazygit से प्रेरित प्रोजेक्ट

    • lazygit उपयोगकर्ता के तौर पर, यह जानने की जिज्ञासा है कि lazygit में क्या कमी है। lazygit बहुत उपयोगी रहा है।
  • बड़े repository में लोकप्रिय git GUI की विफलता

    • बड़े repository या गहरी directory structure में git status जाँचने में समय लगने की समस्या का अनुभव हुआ है। यह भी सवाल है कि GUI, TUI और command line के बीच वास्तव में कोई फ़र्क पड़ता है या नहीं।
  • नए प्रोजेक्ट से उम्मीद

    • उम्मीद है कि GitExtensions को Linux native application के रूप में port किया जाएगा। कई UI आज़माए, लेकिन GitExtensions जितना अच्छा कुछ नहीं मिला।
  • click-and-drag UI पर सवाल

    • यह जानना है कि क्या git में branch operations को drag and drop से करने वाला कोई UI है।
  • Neogit plugin इस्तेमाल करने का अनुभव

    • लगभग एक महीने पहले इस्तेमाल शुरू किए गए Neogit plugin जैसा लगता है। शुरुआत में key bindings मुश्किल थे, लेकिन आदत पड़ने पर यह पिछले workflow से काफ़ी तेज़ है।
  • निजी tool उपयोग का अनुभव

    • कई tools आज़माए, लेकिन हमेशा कोई महत्वपूर्ण फ़ीचर गायब रहा या चीज़ें मनचाहे तरीके से काम नहीं करती थीं, इसलिए अंततः tig पर लौटना पड़ा। GitUI में branch structure को अच्छी तरह दिखाने वाला फ़ीचर कमज़ोर है।
  • रोज़मर्रा में इस्तेमाल होने वाला tool

    • रोज़ इस्तेमाल करने के लिए यह बहुत सरल और शानदार है। commit पर sign करने के लिए Git खुद इस्तेमाल करना पड़ता है, यह ध्यान देने वाली बात है।
  • संबंधित लिंक

    • GitUI: Terminal UI for Git, Terminal-UI for Git written in Rust से संबंधित Hacker News comments के संकलन का लिंक दिया गया है।
  • GUI उपयोग के खास फ़ायदों पर सवाल

    • जिसने कभी GUI इस्तेमाल नहीं किया, वह यह जानना चाहता है कि GUI इस्तेमाल करने से कौन से खास फ़ायदे मिल सकते हैं।