बहुत से लोग आपको उपयोग करने की सलाह देते हैं git update-index --assume-unchanged
। वास्तव में, यह एक अच्छा समाधान हो सकता है, लेकिन केवल अल्पावधि में।
क्या आप शायद क्या करना चाहते हैं यह है: git update-index --skip-worktree
।
(तीसरा विकल्प, जो आप शायद नहीं चाहते हैं: git rm --cached
यह आपकी स्थानीय फ़ाइल रखेगा, लेकिन दूरस्थ रिपॉजिटरी से हटाकर चिह्नित किया जाएगा।)
पहले दो विकल्पों में अंतर?
assume-unchanged
अस्थायी रूप से आपको फ़ाइल से संशोधनों को छिपाने की अनुमति है। यदि आप किसी फ़ाइल में किए गए संशोधनों को छिपाना चाहते हैं, तो फ़ाइल को संशोधित करें, फिर किसी अन्य शाखा को चेकआउट करें, आपको इसके no-assume-unchanged
बाद किए गए संशोधनों का उपयोग करना होगा ।
skip-worktree
आप अपने संशोधन के साथ जो भी शाखा चेकआउट करेंगे उसका अनुसरण करेंगे!
के मामले का उपयोग करें assume-unchanged
यह मानता है कि इस फ़ाइल को संशोधित नहीं किया जाना चाहिए, और जब आप कर रहे हैं तो आपको एक क्लीनर आउटपुट देता है git status
। लेकिन जब दूसरी शाखा की जाँच की जाती है, तो आपको ध्वज को रीसेट करने की आवश्यकता होती है और इससे पहले परिवर्तनों को कम या कम करना चाहिए। यदि आप इस विकल्प को सक्रिय करते हैं, तो आपको संघर्षों को हल करना होगा और ऑटो मर्ज नहीं होगा। यह वास्तव में केवल संशोधनों को छुपाता है ( git status
आपको ध्वजांकित फ़ाइलों को नहीं दिखाएगा)।
मैं इसका उपयोग करना पसंद करता हूं जब मैं केवल एक ही संशोधन git commit -a
से संबंधित फाइलों ( ) का एक गुच्छा + के लिए ट्रैकिंग परिवर्तनों को रोकना चाहता हूं ।
के मामले का उपयोग करें skip-worktree
आपके पास एक सेटअप वर्ग है जिसमें पैरामीटर (जैसे पासवर्ड शामिल हैं) कि आपके दोस्तों को उनके सेटअप के अनुसार बदलना होगा।
- 1: इस वर्ग का पहला संस्करण बनाएं, उन क्षेत्रों को भरें जिन्हें आप भर सकते हैं और दूसरों को खाली / अशक्त छोड़ सकते हैं।
- 2: रिमोट सर्वर पर कमिट करें और उसे आगे बढ़ाएं।
- 3:
git update-index --skip-worktree MySetupClass.java
- 4: अपने स्वयं के मापदंडों के साथ अपने कॉन्फ़िगरेशन वर्ग को अपडेट करें।
- 5: दूसरे कार्य पर काम करने के लिए वापस जाएं।
आप जो भी संशोधन करेंगे वह शाखा का अनुसरण करेगा। चेतावनी: यदि आपके मित्र भी इस वर्ग को संशोधित करना चाहते हैं, तो उनके पास एक ही सेटअप होना चाहिए, अन्यथा उनके संशोधनों को दूरस्थ भंडार में धकेल दिया जाएगा। खींचते समय, फ़ाइल के दूरस्थ संस्करण को आपका ओवरराइट करना चाहिए।
पुनश्च: एक या दूसरे, लेकिन दोनों नहीं के रूप में आप अवांछनीय दुष्प्रभाव होगा। यदि आप किसी अन्य ध्वज को आज़माना चाहते हैं, तो आपको पहले वाले को अक्षम करना चाहिए।
.csproj
फाइल में बदलाव क्यों ट्रैक नहीं करना चाहेंगे , जो कि किसी भी परियोजना का बहुत महत्वपूर्ण हिस्सा है।.csproj.user
फ़ाइल या किसी भी फ़ाइल में परिवर्तन, जिसे.Publish.XML
मैं पूरी तरह से ट्रैक नहीं कर सकता, लेकिन मैं समझ सकता हूँ कि आप इसे क्यों ट्रैक नहीं करना चाहते.csproj
...