अपनी Git identity कैसे सेट करें
(benji.dog)अपनी 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का मान अलग रखना होगा।
- Remote पर
-
Git config में SSH सेटिंग्स का उपयोग:
- किसी खास repository के लिए अलग SSH settings इस्तेमाल करनी हों तो Git config में
insteadOfका उपयोग करके URL बदला जा सकता है। - उदाहरण के लिए,
github.com:orgnameकी जगहgh-work:orgnameका उपयोग करके सही SSH settings लागू की जा सकती हैं।
- किसी खास repository के लिए अलग SSH settings इस्तेमाल करनी हों तो Git config में
-
ध्यान देने योग्य बातें:
- इस तरीके में कुछ समस्याएँ हो सकती हैं, और लेखक जानना चाहता है कि क्या इससे बेहतर कोई तरीका है।
संदर्भ सामग्री
- कई Git identities को मैनेज करने के तरीकों पर अलग-अलग ब्लॉग लेखों का संदर्भ लिया गया है।
1 टिप्पणियां
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-personalcommand चलाने का तरीका सुझाया गया है~/.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:remotecondition का उपयोग करके खास 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
.gitconfigfiles सेट करके email और signing key को अलग रखने का तरीका बताया गया है। GPG signing enable करके commits पर हस्ताक्षर किए जाते हैं