2012-10-24 13 views
7

मैं शाखा में परिवर्तित की गई सभी फ़ाइलों की सूची कैसे प्राप्त कर सकता हूं? मैं एक गिट-डिफ नहीं कर सकता क्योंकि शाखा पहले से ही मास्टर में विलय हो चुकी है।गिट एक शाखा में संशोधित सभी फ़ाइलों की एक सूची पुनर्प्राप्त करें

मुझे शाखा में सभी कामों को सूचीबद्ध करने और डुप्लीकेट के बिना फ़ाइलों के पथ को निकालने का एक तरीका चाहिए।

से पहले यह वास्तव में सराहना की जाएगी किसी को भी इस तरह की एक बात किया है,

धन्यवाद का एक बहुत!

उत्तर

1

यह काम करता है, तो शाखा मर्ज की ओर इशारा करते है प्रतिबद्ध:

git diff branch_name^..master --name-only 
3

, तो हम आपकी शाखा के रूप में BranchA जो मास्टर से branched था पर विचार करें, आप कर सकते हैं:

git diff --name-status `git merge-base BranchA master`..BranchA 

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

2

git log करें और यह पता लगाएं कि आप किस अंतर को अंतर करना चाहते हैं। आइए मान लें कि आप यह निर्धारित करते हैं कि आप जो प्रतिबद्धता चाहते हैं उसका हैश aaaaaa है। फिर चलाएं:

git diff aaaaaa --stat 
0

मैं इसी समस्या में आया और @ माइकल बर्टिन के समाधान ने अधिकांश भाग के लिए काम किया। हालांकि, मैं इसे एक ऐसी स्क्रिप्ट में जोड़ना चाहता था जो किसी भी शाखा पर काम करेगी, इसलिए इसमें शाखा का नाम नहीं हो सकता है।

git diff --name-only $(git merge-base master HEAD) 

कौन सा दोनों गुरु और वर्तमान शाखा के कोठरी पूर्वज पाता है, तो डिफ कि मौजूदा शाखा के साथ प्रतिबद्ध: यह है कि मैं क्या के साथ आया है।

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