2011-08-16 10 views
6

मेरे क्षमायाचना करता है, तो यह एक मूर्खतापूर्ण सवाल है, लेकिन मैं एक वीएसएस/VSTS Git :)गिट में एकल फ़ाइल में चेक करें?

में बदलने की कोशिश कर रहा हूँ पुरुष मैं भंडार क्लोन और विजुअल स्टूडियो परियोजनाओं की एक लोड नीचे खींच लिया। उन परियोजनाओं पर काम करते हुए मैंने देखा कि एक और डेवलपर ने एक अवैध .sql फ़ाइल सबमिट की थी। मैंने उनके लिए .sql फ़ाइल तय की है, लेकिन अब मुझे यह सुनिश्चित नहीं है कि .sql फ़ाइल

मेरे कोड में परिवर्तन सभी आधा बेक्ड हैं इसलिए वर्तमान में इन्हें चेक नहीं किया जा सकता है। मेरे पास मेरे कंप्यूटर पर गिट एक्सटेंशन हैं, और जब मैं विंडोज एक्सप्लोरर में फ़ाइल पर राइट क्लिक करता हूं और गिट एक्सटेंशन -> कमिट पर जाता हूं, बाईं ओर संदर्भित कई फाइलें हैं। जिस फ़ाइल में मैं जांचना चाहता हूं वह एक पेंसिल का प्रतीक है, और अन्य फ़ाइलों के द्रव्यमान में सभी का हरा + प्रतीक होता है।

+0

यह ध्यान देने योग्य हो सकता है कि गिट में, इसके पूर्ववर्तियों में से कई के विपरीत, एक फ़ाइल (ओं) में "परिवर्तन" करने के लिए एक अंतर है ('गिट प्रतिबद्ध' के साथ) जो केवल काम करता है अपने स्थानीय भंडार में बदलें, और (2) परिवर्तन को दबाकर ('गिट पुश' के साथ), जो रिमोट रिपोजिटरी में परिवर्तन को प्रसारित करता है, आमतौर पर "मूल" (एक वीएसएस या सीवीएस या सबवर्जन सर्वर के समान)। – Will

उत्तर

11

आपको केवल एसक्यूएल फ़ाइल में इंडेक्स में परिवर्तन जोड़ने और गिट प्रतिबद्ध चलाने की आवश्यकता है।

git add path/to/file.sql 
git commit -m 'fixed broken sql file' 

अपने अन्य परिवर्तनों के बारे में चिंता मत करो, जब तक आप नहीं add उन्हें एड, वे प्रतिबद्ध नहीं किया जाएगा (यकीन है कि सूचकांक में कोई बदलाव नहीं देखते हैं बनाने के लिए, जोड़ने से पहले चलाने git reset अन्य परिवर्तन)

+0

मुझे इसे हराया: पी – johnny

+1

आप यह देखने के लिए सूचकांक में कौन सी फाइलें आयोजित की गई हैं या 'गिट diff --staged'' देखने के लिए 'गिट स्थिति' का उपयोग भी कर सकते हैं यह देखने के लिए कि कौन से परिवर्तन चरणबद्ध हैं ... – johnny

+0

किंवदंती, धन्यवाद :) – plenderj

0

यदि आप गिटबैश या कुछ इसी तरह का उपयोग कर सकते हैं, तो git add <filename> का उपयोग करें।

4

यह शायद सबसे सुरक्षित है/कमांड लाइन से यह करने के लिए सबसे आसान:

$ git add foo.sql 
$ git commit -m "Fixed foo.sql" 

यह सिर्फ फ़ाइल foo.sql करता है। इससे पहले कि आप प्रतिबद्ध कर सकते हैं:

$ git status 

पुष्टि करते हैं कि केवल आवश्यक फ़ाइल के लिए प्रतिबद्ध होना होगा (यह अन्य संशोधित फ़ाइलों को अलग से सूची जाएगा, लेकिन वे नहीं होगा "का मंचन किया" अगले के लिए प्रतिबद्ध)।

0

SmartGit अन्य फ़ाइलों का मंचन होने पर भी व्यक्तिगत फ़ाइलों से काम करने वाले वृक्ष परिवर्तन कर सकते हैं।

0

Git के वर्तमान संस्करण आप भी कर सकते हैं के साथ:

git commit <filename> 

यह है कि फाइल और केवल उस फ़ाइल में सब कुछ के लिए प्रतिबद्ध होगा। वर्तमान में इंडेक्स में क्या किया गया है इससे कोई फर्क नहीं पड़ता।

गिट के कुछ संस्करणों को फ़ाइल नाम से पहले अतिरिक्त तर्कों की आवश्यकता होती है। इसमें -m <message> शामिल है।

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