मैं केवल दो संशोधनों के बीच परिवर्तित फ़ाइलों की एक सूची प्राप्त करना चाहता हूं, जो सरल है:
git diff -–name-only commit1 commit2 > /path/to/my/file
लेकिन, मुझे क्या लिखना चाहिए, अगर मैं उस सभी सूचीबद्ध फाइलों को दूसरी जगह कॉपी करना चाहता हूं? और मुझे कॉपी किए गए फ़ाइलों के लिए पूरी तरह से समान निर्देशिका संरचना की आवश्यकता है।
उदाहरण के लिए, मैंने फ़ाइलों को संशोधित और जोड़ा है:
/protected/texts/file1.txt
/protected/scripts/index.php
/public/pics/pic1.png
मैं /home/changes/उन सभी परिवर्तित और जोड़ी गई फ़ाइलों में रखना चाहता हूं :
/home/changes/protected/texts/file1.txt
/home/changes/protected/scripts/index.php
/home/changes/public/pics/pic1.png
git format-patchप्रतिबद्ध श्रेणियों के लिए ऐसा कर सकते हैं।
git diff commit1 commit2 > my.patchऔर फिर cd other/path; patch -p1 < my.patch। इसे फाइलों की पूरी प्रतियों के साथ क्यों करना पड़ता है? यदि ऐसा है क्योंकि आपको लगता है कि पैच लागू नहीं हो सकता है, और इसलिए अन्य निर्देशिका वास्तव में commit1राज्य में नहीं है , तो आपको वास्तव में राज्य से सब कुछ कॉपी करना चाहिए commit2...