2010-07-28 11 views
12

में प्रतिबद्ध से एक बदली गई ट्रैक की गई फ़ाइल को बहिष्कृत करें मेरे पास डेटाबेस (पहले से जोड़ा गया) फ़ाइल गिट में ट्रैक किया गया है। मैं चाहता हूं कि इस फ़ाइल में हमेशा मेरे गिट भंडार में एक ही डेटा हो। यहां तक ​​कि जब मैं इसे परीक्षण उद्देश्यों के लिए कार्यशील प्रतिलिपि (स्थानीय सैंडबॉक्स) में संशोधित करता हूं।गिट के साथ, अस्थायी रूप से कमांड लाइन

गिट के साथ, इस बदली गई फ़ाइल को मेरी कार्यशील प्रतिलिपि पर एक प्रतिबद्धता से कैसे बाहर निकालना है?

+1

संभावित डुप्लिकेट: http://stackoverflow.com/questions/3319479/git-can-i-commit-a-file-and-ignore-the-content-changes – Daenyth

उत्तर

19

तरह से करने के बजाय git commit का उपयोग कि पहले से ही प्रतिबद्ध हैं कुछ फ़ाइलों को अनदेखा करना चाहते

git update-index --assume-unchanged file 
है

हालांकि, यह एक स्थानीय सेटिंग है, और यह क्लोनिंग के दौरान प्रचार नहीं करता है।

इसका प्रभाव git update-index --no-assume-unchanged gui के साथ रद्द कर दिया गया है।

+0

यह एक स्थानीय सेटिंग है, यह वही है जो मैं – djondal

-3
  1. अपने रेपो को यह फ़ाइल जोड़ने
  2. प्रतिबद्ध
  3. .gitignore फ़ाइल में जोड़ने
  4. प्रतिबद्ध .gitignore फ़ाइल
+0

यह मेरे सिर को चोट पहुंचाता है, लेकिन शायद अधिक है मेरे सुझाव से सुरुचिपूर्ण – jdizzle

+1

यह समाधान काम नहीं करता है क्योंकि फ़ाइल पहले ही ट्रैक हो चुकी है, है ना? – djondal

+1

-1। यह सिर्फ काम नहीं करता है। फ़ाइल अभी भी संशोधित के रूप में 'गिट स्थिति' में दिखाया गया है। –

2

आप git commit -a ऐसा नहीं करते हैं, git commit केवल फ़ाइलों के लिए प्रतिबद्ध होगा कि आपने git add का उपयोग कर इंडेक्स में स्पष्ट रूप से जोड़ा है।

+2

हालांकि, यह याद रखना कठिन है, आपको कौन सी फाइलें जोड़नी चाहिए, और जो आपको नहीं करना चाहिए। –

-1

बस git add साथ इसे जोड़ नहीं है, लेकिन किसी भी अन्य फ़ाइल जोड़ें आप

प्रतिबद्ध करने के लिए तो git commit -a

+0

ओपी विशेष रूप से बताता है कि यह पहले ही ट्रैक हो चुका है। – mhvelplund

-2

ऐसा करने का सबसे अच्छा तरीका डेटाबेस को बिल्कुल ट्रैक नहीं करना है। एक उदाहरण डेटाबेस ट्रैक करें और फिर प्रत्येक डेवलपर इसे कॉपी और संशोधित कर सकता है, और यह गिटिनोरोर के तहत हो सकता है।

+0

-1 के लिए देख रहा हूं। अनुपयोगी। वैसे भी, कभी-कभी आप ऐसा नहीं कर सकते क्योंकि बाहरी ढांचे ** निर्माण के दौरान ** फ़ाइल को संशोधित करता है, और इसे एक ही समय में उत्पन्न नहीं कर सकता है। –

+2

यदि मेरी फ़ाइल को ट्रैक किया गया है, तो ऐसा इसलिए है क्योंकि इसे ट्रैक किया जाना चाहिए ... यह सिर्फ इतना है कि मैं परीक्षण स्तर पर किए गए परिवर्तनों का प्रचार नहीं करना चाहता हूं। – djondal

4

इसके अतिरिक्त git add का उपयोग करने के लिए मैं अधिक क्षमताओं के साथ एक खोल का उपयोग करने का सुझाव दूंगा, यानी zsh। यहां आप विस्तारित ग्लोबिंग को *~*.o(.) जैसे सम्मिलित कर सकते हैं जिसका अर्थ है o के साथ समाप्त होने वाली सभी फाइलें। यह एक को छोड़कर सभी फाइलों को जोड़ना आसान बनाता है। Zsh आपको वैश्विक उपनाम सेट करने की अनुमति देता है: alias -g AF="*~*.o(.)"। तो आप git add AF टाइप कर सकते हैं और इसे सही तरीके से विस्तारित किया जाएगा।

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