3 पॉइंट द्वारा GN⁺ 2024-11-26 | 1 टिप्पणियां | WhatsApp पर शेयर करें

अपनी Git पहचान कैसे सेट करें

  • परिचय: यह लेख बताता है कि Git config के ज़रिए अपने काम के माहौल के अनुसार पहचान को कैसे मैनेज किया जाए। लेखक ने includeIf का इस्तेमाल करके खास शर्तों के आधार पर फ़ाइलें शामिल करने का तरीका खोजा।

  • Git config:

    • includeIf का इस्तेमाल करके अलग-अलग directories के अनुसार अलग Git config files शामिल की जा सकती हैं।
    • उदाहरण के लिए, ~/code के नीचे Git directories के लिए ~/.config/git/personal और ~/work के नीचे ~/.config/git/work शामिल करने के लिए सेट किया जा सकता है।
    • हर फ़ाइल में user name, email, signing key जैसी जानकारी शामिल होती है।
  • Remote URL-आधारित config:

    • hasconfig:remote.*.url का इस्तेमाल करके यह शर्तीय रूप से Git config बनाया जा सकता है कि कोई खास remote URL मौजूद हो।
    • उदाहरण के लिए, जिन directories में github.com:orgname/** जैसा remote हो, वहाँ ~/.config/git/config-gh-org इस्तेमाल करने के लिए सेट किया जा सकता है।
  • SSH key सेटअप:

    • Remote पर pull और push करने के लिए SSH keys सेट करनी होंगी।
    • ~/.ssh/config फ़ाइल में Host और IdentityFile सेट करके हर remote के लिए उपयुक्त SSH key इस्तेमाल की जा सकती है।
    • एक ही Hostname के लिए अलग IdentityFile इस्तेमाल करनी हो तो Host का मान अलग रखना होगा।
  • Git config में SSH सेटिंग्स का उपयोग:

    • किसी खास repository के लिए अलग SSH settings इस्तेमाल करनी हों तो Git config में insteadOf का उपयोग करके URL बदला जा सकता है।
    • उदाहरण के लिए, github.com:orgname की जगह gh-work:orgname का उपयोग करके सही SSH settings लागू की जा सकती हैं।
  • ध्यान देने योग्य बातें:

    • इस तरीके में कुछ समस्याएँ हो सकती हैं, और लेखक जानना चाहता है कि क्या इससे बेहतर कोई तरीका है।

संदर्भ सामग्री

  • कई Git identities को मैनेज करने के तरीकों पर अलग-अलग ब्लॉग लेखों का संदर्भ लिया गया है।

1 टिप्पणियां

 
GN⁺ 2024-11-26
Hacker News राय
  • gh-work नाम का उपयोग करके SSH और Git identity को अलग करने का तरीका बताया गया है। gh-work से clone की गई सभी Git repositories, gh-work.inc की settings का पालन करती हैं और SSH config जैसी ही signing key का उपयोग करती हैं

  • एक startup में काम करते समय, एक सहकर्मी हर दिन अपनी identity को किसी परी-कथा जैसे नाम में बदल देता था। इससे version control forensics में मदद नहीं मिलती थी, लेकिन शायद उसका उद्देश्य यह याद दिलाना था कि identity config में आप कुछ भी डाल सकते हैं

  • .gitconfig में identity के लिए alias जोड़कर, repository initialize या clone करने के बाद git config-company या git config-personal command चलाने का तरीका सुझाया गया है

  • ~/.ssh/config को बदले बिना, ~/.gitconfig में SSH command सेट करके submodules को आसानी से manage करने का तरीका बताया गया है

  • includeIf और hasconfig:remote का उपयोग करके directory के हिसाब से Git settings manage करने का तरीका बताया गया है। repository clone करते समय भी यह उपयोगी है

  • consultants को काम के लिए अलग device या कम से कम अलग OS user इस्तेमाल करने की सख्त सलाह दी गई है। personal device को काम के लिए इस्तेमाल करना जोखिमभरा हो सकता है

  • NixOS और home-manager का उपयोग करके Git settings manage करने का तरीका बताया गया है। hasconfig:remote condition का उपयोग करके खास email सेट किया जाता है

  • SSH की जटिलता को ~/.ssh में बनाए रखते हुए, client या project के हिसाब से अलग settings include करने का तरीका बताया गया है। GitHub जैसे hostname न होने पर alias assign किया जाता है

  • gitdir का उपयोग करके काम और personal work को अलग करने का तरीका बताया गया है। hasconfig:remote वाकई game changer है

  • work और personal repositories को ~/dev और ~/src में अलग करके manage करने का तरीका बताया गया है। हर path के अनुसार अलग Git config files include की जाती हैं

  • personal और work .gitconfig files सेट करके email और signing key को अलग रखने का तरीका बताया गया है। GPG signing enable करके commits पर हस्ताक्षर किए जाते हैं