2010-10-07 12 views
22

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

git status आदेश की एक जटिल sed/grep पार्स के अलावा, मैं आसानी से कैसे निर्धारित कर सकते हैं कार्यक्षेत्र में फ़ाइलों git के अनुसार संशोधित किया गया है?

+0

आप केवल पता करने के लिए कुछ बदलाव आया है (लोगों को बदल दिया है जो नहीं) परवाह रहे हैं, तो देखें [मैं प्रोग्राम के रूप में कैसे तय करते हैं कि वहाँ uncommited परिवर्तन कर रहे हैं ?] (http://stackoverflow.com/q/3878624/193688) –

उत्तर

24

git ls-files -m

यह आप git help -a के माध्यम से ब्राउज़ किया जा सकता था खोजने के लिए।

+0

यह सही है। – Jamie

+8

@ जैमी: चरणबद्ध (लेकिन असम्बद्ध) परिवर्तन वाली फ़ाइलें 'git ls-files -m' के साथ दिखाई नहीं देगी, जो आप चाहते हैं या नहीं भी हो सकती है। –

+1

आह। आपके सहयोग के लिए धन्यवाद। सच में, 'git ls-files -m' जो मैं चाहता हूं वह नहीं है, लेकिन यह मेरे विशिष्ट प्रश्न का उत्तर देता है। हालांकि टिप्पणी और उत्तर के लिए +1। – Jamie

17

git status --porcelain एक अच्छा पार्सेबल आउटपुट देने लगता है।

+0

बहुत अच्छा। अन्य कारणों से उपयोगी होगा। – Jamie

+0

यह बढ़िया है, मैंने इसे गिट प्रतिबद्ध सारांशों को स्वचालित करने के लिए उपयोग किया है (जैसे कि आप गिटहब के वेब इंटरफ़ेस से प्राप्त होते हैं) जो मैं वास्तव में इस प्रश्न पर आया था: [एक-लाइनर जोड़ने, प्रतिबद्ध करने और धक्का देने के लिए] (https: // github। com/lmmx/devnotes/wiki/स्वचालित-Git-स्थिति-सारांश)। –

26

तुम सिर्फ एक सादे चाहते हैं "सिर से कोई अंतर है?": बाहर निकलने के कोड 0

git diff-index --quiet HEAD 

है, तो वहाँ कोई अंतर नहीं था।

यदि आप चाहते हैं "सिर से क्या फ़ाइलों को बदल दिया है?":

git diff-index --name-only HEAD 

यदि आप चाहते हैं "सिर से क्या फ़ाइलों को बदल दिया है, और किस तरह से वे बदल (जोड़ा, नष्ट कर दिया, परिवर्तित) है में? ":

git diff-index --name-status HEAD 

-M (और -C) जोड़ें अगर आप का नाम बदलने के लिए चाहते हैं (और कॉपी) का पता लगाने।

ये आदेश चरणबद्ध सामग्री (इंडेक्स में क्या है) और काम करने वाले पेड़ की फ़ाइलों दोनों की जांच करेंगे। git ls-files -m जैसे विकल्प केवल इंडेक्स के खिलाफ काम कर रहे पेड़ की जांच करेंगे (यानी वे कार्यरत पेड़ में भी किसी भी चरणबद्ध (लेकिन असामान्य) सामग्री को अवहेलना करेंगे)।

2

git diff --name-only ही करता है (अधिक सहज ज्ञान युक्त हो सकती है ...)

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

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