gitV1.7.11 से शुरू करके, आप git difftool --dir-diffएक डायरेक्टरी डिफरेंस को परफॉर्म करने के लिए उपयोग कर सकते हैं ।
यह सुविधा उदाहरण के लिए Meld 3.14.2 के साथ अच्छी तरह से काम करती है, और आपको सभी संशोधित फ़ाइलों को ब्राउज़ करने देती है:
git difftool --dir-diff --tool=meld HEAD~ HEAD
यह एक आसान बैश फ़ंक्शन है:
git-diff-meld() (
git difftool --dir-diff --tool=meld "${1:-HEAD~}" "${2:-HEAD}"
)
जवाब है कि gitv1.7.11 से पुराने प्रतिष्ठानों पर लागू होता है ।
यही सवाल git mail लिस्ट पर पूछा गया था ।
मैंने उस ईमेल थ्रेड के आधार पर एक शेल स्क्रिप्ट को एक साथ रखा, जो एक निर्देशिका करता है जो मनमाने ढंग से कमिट्स के बीच भिन्न होता है।
Git v1.7.10 के साथ शुरू, git-diffallस्क्रिप्ट में शामिल हैcontrib मानक git स्थापना में शामिल है।
V1.7.10 से पहले के संस्करणों के लिए, आप GitHubgit-diffall पर प्रोजेक्ट से इंस्टॉल कर सकते हैं ।
यहाँ परियोजना विवरण है:
Git-diffall script, git के लिए डायरेक्टरी आधारित अलग मैकेनिज्म प्रदान करती है। स्क्रिप्ट diff.tool कॉन्फ़िगरेशन विकल्प पर निर्भर करती है यह निर्धारित करने के लिए कि किस दर्शक का उपयोग किया जाता है।
यह स्क्रिप्ट उन सभी रूपों के साथ संगत है, जिनका उपयोग विभिन्न प्रकार के संशोधनों को निर्दिष्ट करने के लिए किया जाता है:
1) git diffall: शो वर्किंग ट्री और स्टेज्ड चेंजेस के बीच अंतर होता है
2) git diffall --cached [<commit>]: शो स्टॉजेड चेंजेस और HEAD
(या अन्य कमिटेड कमिटमेंट
3) के git diffall <commit>बीच अंतर दिखाता है: वर्किंग ट्री और नेम कमिटमेंट
4 के git diffall <commit> <commit>बीच के शो में अंतर होता है: शो दो डिमांड कमिट्स
5 के बीच अंतर होता है git diffall <commit>..<commit>: वही
6 से ऊपर ) git diffall <commit>...<commit>: दोनों के एक सामान्य पूर्वज से शुरू होने वाली शाखा पर, दूसरे तक और ऊपर के परिवर्तनों को दिखाएं<commit>
नोट: सभी फॉर्म एक वैकल्पिक पथ सीमक लेते हैं [--] [<path>]
यह स्क्रिप्ट थॉमस रैस्ट द्वारा जीट सूची में दिए गए एक उदाहरण पर आधारित है ।