जवाबों:
एक पथ प्रदान करें (इस मामले में myfolder) और बस चलाएँ:
git diff myfolder/
git diff -- myfoldergit के लिए अस्पष्टता को कम करने के लिए उपयोग करना चाहूंगा । गिट डिफरेंस (और कई git कमांड्स) के लिए सामान्य संकेतन वह है git diff [commit-ish] -- [path]जहां HEAD के लिए प्रतिबद्ध-ish डिफॉल्ट (जहां आप अभी हैं) और [path]git रूट डायरेक्टरी के लिए डिफॉल्ट करता है, लेकिन आपकी वर्तमान डायरेक्टरी के सापेक्ष कुछ भी हो सकता है। बिना --जीआईटी अनुमान लगाएगी कि आपका क्या मतलब है, [commit-ish]या [path]। कुछ मामलों में, यह धारणा को 'अस्पष्ट' कहने का कारण बनता है। अगर मुझे ठीक से याद है।
git diff master..develop myfolder/जैसा कि @CrandellWS ने मूल प्रश्न पर टिप्पणी में कहा है। यदि आप देख रहे हैं तो Git स्थिति आपको परिवर्तन दिखाएगी।
यदि आप विभिन्न शाखाओं की तुलना कर रहे हैं, तो आपको --फ़ाइल सिस्टम पथ से Git संशोधन को अलग करने के लिए उपयोग करने की आवश्यकता है । उदाहरण के लिए, दो स्थानीय शाखाओं के साथ, masterऔर bryan-working:
$ git diff master -- AFolderOfCode/ bryan-working -- AFolderOfCode/
या एक स्थानीय शाखा से रिमोट तक:
$ git diff master -- AFolderOfCode/ origin/master -- AFolderOfCode/
आपको इस तरह से सामान के लिए प्रलेखन देखने की आदत डालनी चाहिए। यह बहुत उपयोगी है और आपके कौशल को बहुत जल्दी सुधार देगा। यहाँ प्रासंगिक है जब आप करते हैंgit help diff
git diff [options] [--no-index] [--] <path> <path>
दो <path>हैं जो आपको सवाल में निर्देशिकाओं को बदलने की आवश्यकता है।
जोड़े तुलना से परे Git में अपने difftool के रूप में और के रूप में diffdir के लिए एक अन्य नाम जोड़ें:
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"
Gitdiff प्राप्त करें:
git diffdir 4bc7ba80edf6 7f566710c7
संदर्भ: संपूर्ण निर्देशिकाओं की तुलना करें wit difftool + परे की तुलना करें
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"इसके बजाय का उपयोग करें
--no-symlinksविकल्प जोड़ें, ताकि कमांड पढ़ेgit difftool --dir-diff --no-symlinks
न केवल आप एक पथ जोड़ सकते हैं, लेकिन आप git diff --relativeउस फ़ोल्डर के सापेक्ष परिणाम प्राप्त करने के लिए जोड़ सकते हैं ।
git -C a/folder diff --relative
और Git 2.28 (Q3 2020) के साथ, " diff" परिवार ने " diff.relative" कॉन्फ़िगरेशन चर का सम्मान करना सीखा ।
लॉरेंट अरनॉड ( ) द्वारा प्रतिबद्ध c28ded8 (22 मई 2020) देखें । (द्वारा विलय Junio सी Hamano - - में प्रतिबद्ध e34df9a , 02 जून 2020)spk
gitster
diff: config विकल्प जोड़ेंrelativeसाइन-ऑफ-बाय: लॉरेंट
अर्नॉड Acked-by: offoàn Trần Công Danh
diff.relativeकरने के लिए बूलियन विकल्प सेटtrueशो केवल वर्तमान निर्देशिका / द्वारा निर्दिष्ट मान में आने वाले बदलावpathका तर्कrelativeविकल्प और शो pathnames ऊपर उल्लिखित निर्देशिका के सापेक्ष।
--no-relativeपहले ओवरराइड करना सिखाएं--relativeगिट-प्रारूप-पैच (1) विकल्प प्रलेखन
--relativeऔर के लिए जोड़ें--no-relative
diff.relative:यदि '
true' ' ' पर सेट किया गया है , तो 'git diff' निर्देशिका के बाहर परिवर्तन नहीं दिखाता है और वर्तमान निर्देशिका के सापेक्ष पथनाम दिखाता है।
यदि आप उप-निर्देशिकाओं को बाहर करना चाहते हैं, तो आप उपयोग कर सकते हैं
git diff <ref1>..<ref2> -- $(git diff <ref1>..<ref2> --name-only | grep -v /)
निर्देशिका से भिन्न के रूप में तुलना से परे का उपयोग करने के लिए , याद रखें कि सक्षम करें जैसे प्रतीकात्मक लिंक का पालन करें:
एक में फ़ोल्डर की तुलना करें देखें → नियम (रेफर चिह्न):
और फिर, प्रतीकात्मक लिंक का पालन करें और सत्र चूक को अपडेट करें:
या,
इस तरह उपनाम स्थापित करें:
git config --global alias.diffdir "difftool --dir-diff --tool=bc3 --no-prompt --no-symlinks"
ध्यान दें कि किसी भी स्थिति में, साइड (बाएं या दाएं) में किए गए कोई भी संपादन जो वर्तमान कार्यशील पेड़ को संदर्भित करता है, संरक्षित हैं।
git diff master..yourbranch path/to/folder