2011-12-14 8 views
14

में गिटहब टोकन छुपाएं। मैं गिटहब पर अपने सभी डॉटफाइल को स्टोर करना चाहता हूं, जिसमें .gitconfig शामिल है जिसके लिए मुझे .gitconfig में गिटहब टोकन छिपाने की आवश्यकता है।.gitconfig

... 
[github] 
user = giuliop 
token = --hidden-- 
... 

और एक खोल स्क्रिप्ट जो मैं की जरूरत है:

मैं एक ".gitconfig-छुपा-टोकन" फ़ाइल जो फ़ाइल मैं संपादित और Git के घेरे में रखा है कि टोकन छुपाता करने का इरादा है ऐसा करने के लिए अगर मैं ".gitconfig" फ़ाइल बनाने के लिए ".gitconfig-छुपा-टोकन" फ़ाइल को संशोधित लांच करने के लिए:

cp .gitconfig .gitconfig.backup 
sed 's/--hidden--/123456789/' .gitconfig-hidden-token > .gitconfig 

दोष यह मैन्युअल रूप से स्क्रिप्ट शुरू करने के लिए हर मैं फ़ाइल modidy की जरूरत है। क्या ऐसा करने के लिए एक बेहतर, पूरी तरह से स्वचालित तरीका है?

उत्तर

10

git add -N के साथ अपना .gitconfig जोड़ें।

फिर git add -p इसे, हंक संपादित करें, किसी भी चीज़ के साथ टोकन को प्रतिस्थापित करें, और उसे दबाएं। इस तरह एक अतिरिक्त फाइल के लिए कोई ज़रूरत नहीं है।

अनुपूरक: अपनी फ़ाइल के अतिरिक्त संशोधनों पर, git add -p फिर से उपयोग करें, और हंक संपादित करें ताकि आपका प्रारंभिक हेरफेर ओवरराइट नहीं किया जा सके।

+2

क्या होता है यदि मैं बाद में फ़ाइल संपादित करता हूं और 'git add' को भूल जाता हूं तो यह '-p' भूल जाता है? मुझे लगता है कि टोकन – gws

+0

@gws प्रकाशित होगा: वास्तव में, लेकिन फिर आप कर सकते हैं (और संभवतः) 'git diff --cached' का उपयोग करने से पहले, और त्रुटि के मामले में, फ़ाइल को' रीट 'रीसेट भी कर सकते हैं। – fge

+2

मुझे लगता है कि सही दृष्टिकोण @ddopson – Hedgehog

1

मैंने अपने डॉटफाइल रेपो को अपडेट करने के लिए एक स्क्रिप्ट बनाई है, यह मेरे जीथब टोकन जैसी संवेदनशील जानकारी को भी प्रतिक्रिया देता है। मुझे नहीं लगता कि गिथब टोकन का उपयोग अब गिटहब द्वारा किया जाता है, लेकिन अगर मैं गलत हूं तो मुझे सही करें।

आप मेरी स्क्रिप्ट here देख सकते हैं।

3

अब आप अपने gitconfig में एक और फ़ाइल शामिल कर सकते हैं। आप अपने जीथब सेक्शन को उस अतिरिक्त फाइल में डाल सकते हैं। यह प्रश्न देखें: Is it possible to include a file in your .gitconfig

34

मैंने अभी इसे अपने लिए तय कर लिया है। इस मुद्दे को हल करने का "उचित" तरीका है अपने gitconfig को दो फाइलों में विभाजित करना, उपनाम/कॉन्फ़िगर/आदि के साथ एक सार्वजनिक, और एक निजी फ़ाइल जो आपके उपयोगकर्ता नाम और रहस्य रखती है। इसलिए जैसा ...


https://github.com/ddopson/dotfiles से ...

.gitconfig:
[include] 
    # For username/creds/etc 
    path = ~/.gitconfig.local 

[alias] 
    ... 
.gitconfig.local:
[user] 
    user = ddopson 
    name = Dave Dopson 
    email = [email protected] 
    token = a123uber456secret789ceprivate000key78 

[credential] 
    helper = osxkeychain 
.gitignore:
/.gitconfig.local 
+1

के उत्तर में 'शामिल' का उपयोग करना है यदि आप अपनी '.gitconfig.local' फ़ाइल को उसी विकास निर्देशिका में अपने dotfiles git रिपोजिटरी के रूप में रखते हैं, तो' .gitconfig जोड़ने के लिए मत भूलना आपके प्रोजेक्ट के '.gitignore' में .local'। –

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