2010-11-06 8 views
31

से इसे हटाए बिना एक फ़ाइल में सभी को संपादित करने के लिए गिट को कैसे बताना है, मैंने गिटूब पर एक प्रोजेक्ट फोर्क किया है और अपनी मशीन पर इसके साथ गड़बड़ करना शुरू कर दिया है, मैं अपने द्वारा किए गए परिवर्तनों को प्रतिबद्ध करना चाहता हूं GitHub पर लेकिन, परिवर्तन मैं .cfg फाइल करने के लिए बना दिया है करने से बाद से इस डाटाबेस पासवर्ड आदिरीट

+0

संभव डुप्लिकेट [गिट में संशोधित (लेकिन प्रतिबद्ध नहीं) फ़ाइलों को अनदेखा करें?] (Http://stackoverflow.com/questions/655243/ignore-modified-but-not-committed-files-in-git) – Cascabel

+0

वहां शायद आसपास के कई और डुप्लिकेट हैं; आप उत्तर (अद्यतन-अनुक्रमणिका --assume-unchanged) खोज सकते हैं और सभी प्रकार की चीजें पा सकते हैं। – Cascabel

उत्तर

60

उपयोग जैसी चीजों में शामिल है बिना मेरे कांटा को यह:

git update-index --skip-worktree path/file.cfg 

और बहाल करने के लिए:

git update-index --no-skip-worktree path/file.cfg 

अंत में, यदि आप फ़ाइलों को skip-worktree के साथ चिह्नित हैं सूचीबद्ध करना चाहते हैं:

git ls-files -v | grep ^S | awk '{print $2}' 

को आसान बनाने के लिए, आप उस के लिए एक उपनाम अपने $HOME/.gitconfig में बना सकते हैं:

[alias] 
    ls-ignored-changes = !git ls-files -v | grep ^S | awk '{print $2}' 

तो फिर तुम सिर्फ git ls-ignored-changes लिख सकते हैं। यदि आपके पास git-completion स्थान पर है (बैश, टीसीएसएच, जेएसएच) के लिए यह ऑटो-पूर्णता के साथ भी काम करता है।

+0

हेया, मैंने पहले से ही यह कोशिश की है, फिर जब मैं प्रतिबद्ध होने के लिए तैयार हूं तो प्रतिबद्ध होने के लिए तैयार हूं। या जब मैं धक्का देता हूं तो क्या इसे धक्का दिया जाता है? –

+2

@ गैब्रियल बेकर: ऐसा इसलिए है क्योंकि आपने पहले से ही फाइल का मंचन किया है। इसे 'गिट रीसेट पथ/file.cfg' का उपयोग करके अनस्टेज करें। – jweyrich

+1

मेरी इच्छा है कि मैं आपको जानकारी के इस सुपर उपयोगी टुकड़े के लिए 1 से अधिक अपवोट दे सकता हूं, धन्यवाद! – DrCord