ऐसा क्यों है git diff
सोचता है कि कोई बदलाव नहीं है
..भले ही git status
उन्हें रिपोर्ट करता है संशोधित?
$ git status
On branch master
Your branch is ahead of "origin/master" by 2 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file-added
modified: file-with-changes << it knows there are changes
लेकिन अंतर देखने के लिए, मुझे स्पष्ट रूप से अंतिम रिवर्सन हैश जोड़ना होगा ..
$ git diff
(nothing)
$ git diff rev-hash
diff --git a/file-with-changes b/file-with-changes
index d251979..a5fff1c 100644
--- a/file-with-changes
+++ b/file-with-changes
.
..
उत्तर:
जवाब के लिए 22 № 1प्रयास करें git diff --staged
आदेश।
अधिक विकल्प आप उपयोग कर सकते हैं।
git diff
इंडेक्स / स्टेजिंग और काम करने वाली फाइलों के बीच परिवर्तन दिखाता है। आपके मामले में, git add
रखना file-with-changes
क्षेत्र स्टेज करने के लिए। इसलिए, स्टेजिंग और काम करने वाली फाइलों के बीच कोई फर्क नहीं पड़ता।
git diff --staged
HEAD और अनुक्रमणिका / स्टेजिंग के बीच परिवर्तन दिखाता है। git diff --cached
वही काम करता है। staged
तथा cached
एक दूसरे के लिए इस्तेमाल किया जा सकता है।
git diff HEAD
HEAD और काम करने वाली फ़ाइलों के बीच परिवर्तन दिखाता है
git diff $commit $commit
2 प्रतिबद्धताओं के बीच परिवर्तन दिखाता है
git diff origin
सिर और रिमोट / मूल के बीच diff दिखाता है
जवाब के लिए 5 № 2
git diff
सूचकांक के खिलाफ diffs, आपके खिलाफ नहीं HEAD
संशोधन। चलाकर git add
, आपने अपने सूचकांक में बदलाव किए हैं, इसलिए निश्चित रूप से कोई अंतर नहीं है! उपयोग करें
git diff HEAD
अपने पेड़ राज्य और के बीच अंतर देखने के लिएHEAD
संशोधन, याgit diff --cached
अपनी अनुक्रमणिका और के बीच अंतर देखने के लिएHEAD
संशोधन।
उत्तर № 3 के लिए 1
एक ही समस्या में भागो।
- Git add filename1.c का उपयोग करके बनाई गई नई फ़ाइल जोड़ें
- कुछ अन्य filename2.c में एक और परिवर्तन करें जो पहले से ही भंडार ट्रैकिंग सिस्टम का हिस्सा था।
- एक गिट diff करें और आप केवल filename2.c में परिवर्तन देखेंगे। Filename1.c में परिवर्तन दिखाई नहीं देंगे।
- हालांकि यदि आप गिट स्थिति करते हैं तो आप filename1.c और filename2.c दोनों में परिवर्तन देखेंगे।
- एक गिट प्रतिबद्ध करें-ए-एम "filename1.c में परिवर्तन और filename2.c blah blah"
- एक गिट पुश करो
आप देखेंगे कि filename1.c प्रतिबद्ध है।
जवाब के लिए 0 № 4
इसलिये git diff
डिफ़ॉल्ट रूप से स्टेजिंग क्षेत्र और आपकी कार्यशील प्रति के बीच मतभेदों की जांच करता है। जब आप git add
, आपका स्टेजिंग क्षेत्र आपकी कार्यशील प्रतिलिपि से मेल खाता है और इसलिए अलग-अलग रिपोर्टों में कोई परिवर्तन नहीं होता है।
जोड़ना --cached
झंडा के खिलाफ अंतर करने के लिए diff बताता है HEAD
.