Git का उपयोग करके, आप वर्तमान और अंतिम संस्करण के बीच अंतर कैसे पा सकते हैं?
git diff last version:HEAD
Git का उपयोग करके, आप वर्तमान और अंतिम संस्करण के बीच अंतर कैसे पा सकते हैं?
git diff last version:HEAD
जवाबों:
मैं वास्तव में "अंतिम संस्करण" का अर्थ नहीं समझता।
जैसा कि पिछली प्रतिबद्धता को HEAD ^ के साथ एक्सेस किया जा सकता है, मुझे लगता है कि आप कुछ इस तरह की तलाश कर रहे हैं:
git diff HEAD^ HEAD
Git 1.8.5 के रूप में, के @
लिए एक उपनाम हैHEAD
, तो आप उपयोग कर सकते हैं:
git diff @~..@
निम्नलिखित भी काम करेगा:
git show
यदि आप सिर और किसी भी प्रतिबद्ध के बीच अंतर जानना चाहते हैं:
git diff commit_id HEAD
और यह आपके विज़ुअल डिफ टूल (यदि कॉन्फ़िगर किया गया है) को लॉन्च करेगा:
git difftool HEAD^ HEAD
चूँकि HEAD की तुलना डिफ़ॉल्ट है आप इसे छोड़ सकते हैं (जैसा कि ओरिएंट ने बताया है ):
git diff @^
git diff HEAD^
git diff commit_id
~
इसके बजाय चरित्र का उपयोग किया जाना चाहिए ^
।@
लिए एक उपनाम है HEAD
। और क्योंकि ~
और ^
जब केवल एक ही कर रहे हैं जा रहा वापस करने, मुझे लगता है git diff @~..@
बहुत टाइप करने के लिए आसान।
git show
और फिर भी आसान है, क्योंकि @~..@
डिफ़ॉल्ट चीज़ दिखाना है।
git show
केवल प्रतिबद्ध संदेश प्रिंट करता है, यह कम से कम Git 2.5.4 (Apple Git-61) में विशिष्ट परिवर्तनों के एक आउटपुट को आउटपुट नहीं करता है, इसलिए यह वास्तव में ओपी के सवाल का जवाब नहीं होगा।
git show
यह है कि यदि HEAD
कोई मर्ज कमिट है तो आपको वह नहीं मिलेगा जो आप मर्ज करते हैं क्योंकि मर्ज कमिट में खुद कोई बदलाव नहीं हो सकता है। git diff HEAD^ HEAD
संस्करणों के बीच वास्तविक परिवर्तन दिखाएंगे
"वर्तमान संस्करण" मानकर काम करने वाली निर्देशिका (अप्राप्त संशोधनों) और "अंतिम संस्करण" HEAD
(वर्तमान शाखा के लिए अंतिम प्रतिबद्ध संशोधन) है, बस करो
git diff HEAD
निम्नलिखित का श्रेय उपयोगकर्ता को जाता है Cerran
।
और अगर आप हमेशा स्टेजिंग क्षेत्र को छोड़ते हैं -a
जब आप प्रतिबद्ध होते हैं, तो आप बस उपयोग कर सकते हैं git diff
।
सारांश
git diff
अस्थिर परिवर्तन दिखाता है।git diff --cached
मंचन परिवर्तन दिखाता है।git diff HEAD
सभी परिवर्तन दिखाता है (दोनों मंचन और अस्थिर)।स्रोत: git-diff (1) मैनुअल पेज - सेरन
-a
जब आप प्रतिबद्ध होते हैं, तो आप बस उपयोग कर सकते हैं git diff
। <1> अस्थिर परिवर्तन git diff
दिखाता है । <2> चरणबद्ध परिवर्तन दिखाता है । <3> शो सभी परिवर्तन (मंचन किया और unstaged)। स्रोत: git-diff (1) मैनुअल पेजgit diff --cached
git diff HEAD
जैसा कि अमलॉय द्वारा एक टिप्पणी पर कहा गया है , यदि "वर्तमान और अंतिम संस्करण" से आपका मतलब है कि अंतिम प्रतिबद्धता और उससे पहले की प्रतिबद्धता, आप बस उपयोग कर सकते हैं
git show
git show HEAD~1
अंतिम-लेकिन-एक कमिट और git show HEAD~2
आदि दिखाने के लिए उपयोग करें । के माध्यम से सिर्फ एक फ़ाइल दिखाएं git show HEAD~2 my_file
।
अंतिम लेकिन एक प्रतिबद्ध और अंतिम प्रतिबद्ध (प्लस वर्तमान स्थिति, यदि कोई हो) के बीच अंतर:
git diff HEAD~
या यहां तक कि (टाइप करने में आसान)
git diff @~
जहां @
के लिए synonim है HEAD
वर्तमान शाखा और का ~
अर्थ है "मुझे उल्लेख संशोधन की मूल दे"।
git diff HEAD^
(समतुल्य HEAD~
रूप के बजाय )। यह अपने आप की तरह एक "पुराने git" के लिए याद करने में आसान है ;-)
~
@
इसका और मतलब है है।
diff HEAD^ HEAD
होना चाहिए git diff @^!
। देखें git-scm.com/docs/gitrevisions के लिएr1^!
cached
यदि आपने जोड़ा है तो बस ध्वज का उपयोग करें , लेकिन अभी तक प्रतिबद्ध नहीं है:
git diff --cached --color
सबसे पहले, उपयोग करें "git log
रिपॉजिटरी के लॉग को सूचीबद्ध करने के लिए " का ।
अब, दो प्रतिबद्धों से संबंधित, दो प्रतिबद्ध आईडी का चयन करें। आप अंतर देखना चाहते हैं ( उदाहरण - शीर्ष सबसे प्रतिबद्ध और कुछ पुरानी प्रतिबद्ध (वर्तमान-संस्करण और कुछ पुराने संस्करण की आपकी अपेक्षा के अनुसार) )।
अगला, उपयोग करें:
git diff <commit_id1> <commit_id2>
या
git difftool <commit_id1> <commit_id2>
यदि शीर्ष प्रतिबद्ध को HEAD द्वारा इंगित किया जाता है तो आप ऐसा कुछ कर सकते हैं:
commit1 -> HEAD
commit2 -> HEAD~1
commit3 -> HEAD~2
पहले और दूसरे कमिट के बीच का अंतर:
git diff HEAD~1 HEAD
पहले और तीसरे वचन के बीच का अंतर:
git diff HEAD~2 HEAD
दूसरे और तीसरे वचन के बीच का अंतर:
git diff HEAD~2 HEAD~1
और इसी तरह...
मैं का उपयोग Bitbucket साथ ग्रहण ग्रहण के साथ आईडीई EGit प्लग इन इंस्टॉल।
मैं इसके इतिहास के किसी भी संस्करण (जैसे SVN ) की फ़ाइल की तुलना करता हूं ।
मेनू प्रोजेक्ट एक्सप्लोरर → फ़ाइल → राइट क्लिक → टीम → इतिहास में दिखाएँ ।
यह उस फ़ाइल पर सभी परिवर्तनों का इतिहास लाएगा। अब Ctrlक्लिक करें और किसी भी दो संस्करणों का चयन करें → "एक दूसरे के साथ तुलना करें" ।
यह टैग के लिए भी काम करेगा (नीचे 'यूनीक को हटा दें और यदि आपको सभी परिवर्तन देखने की आवश्यकता हो तो अन्य भाग):
git diff v1.58 HEAD
नीचे एक ही है, और एक अखंड भंडार में माइक्रोसर्विस के लिए निरंतर एकीकरण (CI) के लिए उपयोगी हो सकता है:
git diff v1.58 HEAD --name-only | sort -u | awk 'BEGIN {FS="/"} {print $1}' | uniq
<Folder Name>
(क्रेडिट - https://dzone.com/articles/build-test-and-deploy-apps-independently-from-a-mo )