2011-05-24 11 views
90

मैं अपने व्यक्तिगत लैपटॉप का उपयोग दोनों काम और व्यक्तिगत परियोजनाओं के लिए करता हूं और मैं काम (गिटोलाइट) पर अपने काम के लिए अपना काम ईमेल पता और बाकी के लिए अपना व्यक्तिगत ईमेल पता (गीथूब) का उपयोग करना चाहता हूं।किसी दिए गए प्रोजेक्ट के लिए सही पहचान (नाम और ईमेल) का उपयोग करने के लिए गिट को कैसे बताना है?

मैं निम्नलिखित समाधान कर रहे हैं जो के बारे में पढ़ा सब या तो वैश्विक या अस्थायी:

  • git config --global user.email "[email protected]"
  • git config user.email "[email protected]"
  • git commit --author "Bob <[email protected]>"
  • GIT_AUTHOR_EMAIL, GIT_COMMITTER_EMAIL या EMAIL वातावरण चर में से एक की स्थापना

एक समाधान मैन्युअल रूप से एक खोल फ़ंक्शन चलाने के लिए है जो मेरे पर्यावरण को कार्य या व्यक्तिगत पर सेट करता है, लेकिन मुझे पूरा यकीन है कि मैं गलत पहचान के तहत आने वाली सही पहचान पर स्विच करना भूल जाता हूं।

क्या कोई निश्चित भंडार, प्रोजेक्ट नाम इत्यादि को पहचान (नाम, ईमेल) पर बाध्य करने का कोई तरीका है? लोग क्या करते है?

+1

मैं आपसे अनुरोध करता हूं कि आप उत्तर में से किसी एक को स्वीकार करें। मुझे उम्मीद है कि उनमें से एक ने आपकी समस्या को हल करने में आपकी मदद की होगी। – RBT

उत्तर

105

git config user.email "[email protected]"

करने से उस एक रेपो के अंदर एक है कि रेपो पर विन्यास सेट हो जाएगा, और विश्व स्तर पर नहीं।

ऐसा लगता है कि आप जो कुछ भी कर रहे हैं, उसके बावजूद, जब तक कि मैं आपको गलत तरीके से पढ़ रहा हूं।

+0

मुझे लगता है कि इसे करना चाहिए। मैं एक ही परियोजना के लिए कई स्थानीय भंडार रखने की उम्मीद कर रहा हूं, विशेष रूप से शाखाओं के बीच स्विच करने के लिए सब कुछ पुनः संयोजित किए बिना। शायद यह सिर्फ एक बुरा svn आदत है। धन्यवाद। –

+1

@ मार्टिन - मैं गिट का वास्तविक उपयोग नहीं कर रहा हूं, लेकिन मुझे लगता है कि कई स्थानीय रिपोज़ का उपयोग गिट के लिए असामान्य वर्कफ़्लो होगा। फिर भी, आपको केवल रेपो के उदाहरण पर इसे चलाने की आवश्यकता होगी, और यह उस रेपो के जीवनकाल के लिए सेट है, इसलिए यह इतना बुरा नहीं है। –

+0

@DanRay वास्तव में यह एक सामान्य सेटअप है, जैसा कि मार्टिन मामले में, स्थानीय रेपो में स्थानीय असामान्य फ़ाइलें हैं। एक शाखा से दूसरी शाखा में स्विचिंग स्वचालित रूप से फ़ाइलों का पुनर्निर्माण नहीं करेगा। यदि "सबकुछ पुनः संयोजित करने" से बचने का लक्ष्य है, तो कई स्थानीय रिपोज़ का उपयोग करना सही तरीका है। – dolmen

16

आप git config user.email "[email protected]" का उपयोग करते हैं यह वर्तमान परियोजना में हो के लिए बाध्य होंगे।

है यही कारण है कि मैं अपनी परियोजनाओं के लिए करते हैं। जब मैं रेपो को क्लोन/इनिट करता हूं तो मैंने उचित पहचान निर्धारित की। यह मूर्खतापूर्ण प्रमाण नहीं है (यदि आप इसे समझने से पहले भूल जाते हैं और धक्का देते हैं तो आप को git config --global user.email 'ILLEGAL_VALUE'

दरअसल, आप एक अवैध मूल्य बना सकते हैं। अपना git config --global user.name $(perl -e 'print "x"x968;')

सेट करें यदि आप अपने गैर-वैश्विक मान सेट करना भूल जाते हैं तो आपको एक त्रुटि संदेश मिलेगा।

[संपादित करें] एक अलग सिस्टम पर मुझे "घातक: असंभव लंबे व्यक्तिगत पहचानकर्ता" के साथ असफल होने के लिए x से 968 की संख्या में वृद्धि करना पड़ा। गिट का वही संस्करण। अजीब।

+0

यह एक महान चाल की तरह लगता है लेकिन यह मेरे लिए काम नहीं करता है। दोनों गिटोलाइट रिमोट को प्रतिबद्ध और धक्का दोनों सफल रहे। –

+0

@ मार्टिन जंबोन: अजीब। मैं गिट संस्करण का उपयोग कर रहा हूं 1.7.4.5 –

+0

@ मार्टिन जंबोन: आप अपना वैश्विक उपयोगकर्ता नाम/ईमेल पता "x" पर सेट करने का भी प्रयास कर सकते हैं। गिट के कुछ पुराने संस्करणों ने बहुत कम मूल्यों को खारिज कर दिया। अगर यह काम नहीं करता है तो रिपोर्ट करें कि आपके पास क्या गिट संस्करण/ओएस है। –

7

यदि आप --global पैरामीटर का उपयोग नहीं करते हैं तो यह केवल वर्तमान प्रोजेक्ट के लिए चर सेट करेगा।

20

संपादित अलग उपयोगकर्ता नाम और ईमेल बनाए रखने के लिए ".git" फ़ोल्डर में साथ कॉन्फ़िग फ़ाइल भंडार

  • गोटो पर निर्भर करता है आपका reposotory
  • छिपी हुई फ़ाइलें और गोटो दिखाएँ "।Git config "फ़ाइल
  • EOF

[उपयोगकर्ता]

नाम = बॉब

ईमेल = [email protected] पर नीचे लाइनों जोड़े" फ़ोल्डर

  • खोजें "

  • यह नीचे दिया गया आदेश आपको दिखाता है कि इस प्रतिनिधि के लिए कौन सा उपयोगकर्ता नाम और ईमेल सेट है itory।

    Git config --get user.name

    Git config --get user.email

    उदाहरण: मेरा के लिए डी में है कि कॉन्फ़िग फ़ाइल: \ कार्यक्षेत्र \ ग्रहण \ ipchat \। Git \ config

    यहाँ ipchat मेरी रेपो नाम

    21

    आप नीचे दिए गए स्थानीय सेट आदेश का उपयोग करने की आवश्यकता है:

    स्थानीय सेट

    git config user.email [email protected] 
    git config user.name 'Mahmoud Zalt' 
    

    स्थानीय पाने

    git config --get user.email 
    git config --get user.name 
    

    स्थानीय कॉन्फ़िग फ़ाइल परियोजना निर्देशिका में है: .git/config

    वैश्विक सेट

    git config --global user.email [email protected] 
    git config --global user.name 'Mahmoud Zalt' 
    

    वैश्विक अपने घर निर्देशिका में में

    git config --global --get user.email 
    git config --global --get user.name 
    

    वैश्विक कॉन्फ़िग फ़ाइल प्राप्त करें: ~/.gitconfig

    उदाहरण के लिए, रिक्त स्थान, आदि उद्धृत करने के लिए याद रखें: 'प्रथम नाम अंतिम नाम'

    1

    Git 2.13 के रूप में आप अपने gitconfig में एक includeIf उपयोग कर सकते हैं भंडार जहां के रास्ते पर आधारित एक अलग विन्यास के साथ एक फ़ाइल शामिल करने के लिए आप अपने गिट कमांड चला रहे हैं।

    एक बार जब मैं इसे स्वयं काम कर लेता हूं तो मैं एक बेहतर उदाहरण के साथ अपडेट करूंगा।

    https://motowilliams.com/conditional-includes-for-git-config#disqus_thread

    Git 2.13 (विंडोज़/अन्य लिनक्स) का उपयोग करने के लिए आप या तो एक पीपीए (Ubuntu/डेबियन) जोड़ सकते हैं या बाइनरी डाउनलोड करने और स्थापित करने के लिए की आवश्यकता होगी।

    संबंधित मुद्दे

     संबंधित मुद्दे