कभी-कभी जब मैं कमिट करने वाला होता हूं, तो आखिरी कमिटमेंट के बाद जो बदल गया है, उसे बिल्कुल याद नहीं कर सकता। मैं कोड की वर्तमान स्थिति और अंतिम प्रतिबद्ध का एक अंतर कैसे देख सकता हूं?
कभी-कभी जब मैं कमिट करने वाला होता हूं, तो आखिरी कमिटमेंट के बाद जो बदल गया है, उसे बिल्कुल याद नहीं कर सकता। मैं कोड की वर्तमान स्थिति और अंतिम प्रतिबद्ध का एक अंतर कैसे देख सकता हूं?
जवाबों:
यदि आपने अभी तक (साथ git add) सूचकांक में कोई फ़ाइल नहीं जोड़ी है , तो बस करें
git diff
यह आपके वर्किंग ट्री और इंडेक्स के बीच के अंतर को दिखाएगा।
यदि आपने अनुक्रमणिका में फ़ाइलें जोड़ी हैं, तो आपको अनुक्रमणिका और अंतिम प्रतिबद्ध (HEAD) के बीच अंतर दिखाने के लिए ऐसा करने की आवश्यकता है।
git diff --cached
अंत में, यदि आप नवीनतम प्रतिबद्ध ( HEAD) के अनुसार काम करने वाले पेड़ में किए गए परिवर्तनों को देखना चाहते हैं (जैसा कि कार्लोस बताते हैं)
git diff HEAD
उन परिवर्तनों के संयोजन कर रहे हैं git diffऔर git diff --cached।
git diffएक अलग संदेश में सूचकांक की स्थिति और पिछली प्रतिबद्धता के लिए संभव है ?
git diff --cached HEAD^:) :)
यदि आपने अभी-अभी कमिट किया है, या यह देखना चाहते हैं कि वर्तमान स्थिति की तुलना में अंतिम प्रतिबद्धताओं में क्या बदलाव आया है (यह मानते हुए कि आपके पास एक साफ काम करने वाला पेड़ है) आप उपयोग कर सकते हैं:
git diff HEAD^
यह HEAD की तुलना कमिट से तुरंत पहले कर देगा। एक भी कर सकता था
git diff HEAD^^
प्ले 2 की स्थिति की तुलना पहले से करता है। वर्तमान स्थिति और एक निश्चित प्रतिबद्धता के बीच अंतर देखने के लिए, बस करें:
git diff b6af6qc
जहाँ b6af6qcएक प्रतिबद्ध हैश का एक उदाहरण है।
HEAD^प्रतिबद्ध है इससे पहले कि नवीनतम प्रतिबद्ध।
आप git को वर्तमान / अंतिम कमिट को अलग करने के लिए कहते हैं, जिसका शॉर्टहैंड है HEAD।
तो git diff HEADवर्तमान प्रतिबद्ध के साथ कार्यस्थल की वर्तमान स्थिति की तुलना करेगा।
यह भी अंतर दिखाता है और क्या फ़ाइलों को परिवर्तित / संशोधित किया गया है।
$ git status
उन रास्तों को प्रदर्शित करता है जिनमें सूचकांक फ़ाइल और वर्तमान HEAD प्रतिबद्धताओं के बीच अंतर होता है, ऐसे रास्ते जिनमें कार्यशील पेड़ और सूचकांक फ़ाइल के बीच अंतर होता है, और काम करने वाले पेड़ में पथ जो गिट द्वारा ट्रैक नहीं होते हैं (और gitoreore द्वारा अनदेखा नहीं किया जाता है )। पहली वे हैं जो आप जीआईटी कमिटमेंट चलाकर करेंगे; दूसरा और तीसरा वह है जो आप जीआईटी कमिटमेंट चलाने से पहले git add चलाकर कर सकते हैं।
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
यह मेरे लिए भी काम करता है:
# The last one
git diff HEAD~1 HEAD
# The last but one, etc...
git diff HEAD~2 HEAD~1
यह आमतौर पर एक रैखिक इतिहास के लिए काम करता है। यह और अधिक मुश्किल हो सकता है अगर मर्ज कमिट भी हों। मैं आपको एक अच्छे और पूर्ण विवरण के लिए इस डॉक्टर में देखने की सलाह देता हूं, विशेष रूप से उस वृक्ष चित्रण उदाहरण के लिए:
git diffइंडेक्स के खिलाफ वर्कट्री की तुलना करता है, हेड की नहीं।