मैं लौटी जानकारी से डेटा एकत्र कर रहा हूं
git diff <commitId>..<commitId>
और मैं भाग गया @@ -1 +1 @@
मैं यह नहीं जान सकता कि वह मुझे क्या बता रहा है। मैंने Google पर कुछ खोजा है लेकिन कोई फायदा नहीं हुआ।
मैं लौटी जानकारी से डेटा एकत्र कर रहा हूं
git diff <commitId>..<commitId>
और मैं भाग गया @@ -1 +1 @@
मैं यह नहीं जान सकता कि वह मुझे क्या बता रहा है। मैंने Google पर कुछ खोजा है लेकिन कोई फायदा नहीं हुआ।
जवाबों:
यह एक एकीकृत अलग हंक पहचानकर्ता है। यह जीएनयू डिफुटिल्स द्वारा प्रलेखित है।
एकीकृत आउटपुट प्रारूप दो-लाइन हेडर से शुरू होता है, जो इस तरह दिखता है:
--- फाइल से फाइल-मॉडिफिकेशन-टाइम +++ से फाइल टू फाइल-मॉडिफिकेशन-टाइमसमय टिकट
2002-02-21 23:30:39.942229878 -0800
दिनांक, समय के साथ भिन्नात्मक सेकंड और समय क्षेत्र को इंगित करता है। भिन्नात्मक सेकंड मेजबानों पर छोड़ दिए जाते हैं जो भिन्नात्मक समय टिकटों का समर्थन नहीं करते हैं।आप शीर्ष लेख की सामग्री को
--label=label
विकल्प के साथ बदल सकते हैं ; देखें वैकल्पिक नाम देखें ।इसके बाद एक या एक से अधिक मतभेदों को देखें; प्रत्येक हंक एक क्षेत्र दिखाता है जहाँ फाइलें भिन्न होती हैं। एकीकृत प्रारूप हंक इस तरह दिखते हैं:
@@ फ़ाइल-लाइन-संख्या-से-फ़ाइल-पंक्ति-संख्या @@ पंक्ति-से-फ़ाइल -रेखा-से-फ़ाइल-फ़ाइल ...यदि एक हंक में सिर्फ एक लाइन होती है, तो केवल इसकी स्टार्ट लाइन संख्या दिखाई देती है। अन्यथा इसके लाइन नंबर जैसे दिखते हैं । खाली हंक को उस लाइन पर शुरू करने के लिए माना जाता है जो हंक का अनुसरण करती है।
start,count
यदि एक हंक और उसके संदर्भ में दो या अधिक लाइनें हैं, तो इसकी लाइन संख्याएं दिखती हैं । अन्यथा केवल इसकी अंतिम पंक्ति संख्या प्रकट होती है। खाली हंक को उस लाइन पर समाप्त माना जाता है जो हंक से पहले होती है।
start,count
दोनों फ़ाइलों के लिए आम लाइनें एक अंतरिक्ष चरित्र के साथ शुरू होती हैं। दो फ़ाइलों के बीच वास्तव में भिन्न होने वाली रेखाओं में बाएं प्रिंट कॉलम में निम्न संकेतक वर्णों में से एक है:
- +
पहली फ़ाइल के लिए यहां एक लाइन जोड़ी गई थी।- -
पहली फाइल से यहां एक लाइन हटा दी गई थी।
सरल उदाहरण विश्लेषण
प्रारूप मूल रूप से diff -u
एकीकृत रूप में समान है ।
उदाहरण के लिए:
diff -u <(seq -w 16) <(seq -w 16 | grep -Ev '^(02|03|14|15)$')
यहां हमने 2, 3, 14 और 15. लाइनों को हटा दिया। आउटपुट:
@@ -1,6 +1,4 @@
01
-02
-03
04
05
06
@@ -11,6 +9,4 @@
11
12
13
-14
-15
16
@@ -1,6 +1,4 @@
माध्यम:
-1,6
इसका मतलब है कि पहली फ़ाइल का यह टुकड़ा लाइन 1 से शुरू होता है और कुल 6 लाइनों को दिखाता है। इसलिए यह 1 से 6 लाइनों को दर्शाता है।
1
2
3
4
5
6
-
"पुराने" का अर्थ है, जैसा कि हम आमतौर पर इसे लागू करते हैं diff -u old new
।
+1,4
इसका मतलब है कि दूसरी फ़ाइल का यह टुकड़ा लाइन 1 से शुरू होता है और कुल 4 लाइनें दिखाता है। इसलिए यह 1 से 4 लाइनों को दर्शाता है।
+
का अर्थ है "नया"।
हमारे पास 6 के बजाय केवल 4 लाइनें हैं क्योंकि 2 लाइनें हटा दी गई थीं! नया हंक बस है:
01
04
05
06
@@ -11,6 +9,4 @@
दूसरे हंक के लिए अनुरूप है:
पुरानी फ़ाइल पर, हमारे पास 6 लाइनें हैं, जो पुरानी फ़ाइल की लाइन 11 से शुरू होती है:
11
12
13
14
15
16
नई फ़ाइल पर, हमारे पास 4 लाइनें हैं, जो नई फ़ाइल के लाइन 9 पर शुरू होती है:
11
12
13
16
ध्यान दें कि लाइन 11
नई फ़ाइल की 9 वीं पंक्ति है क्योंकि हमने पहले से ही 2 लाइनों को हटा दिया है: 2 और 3।
हंक हेडर
आपके git संस्करण और कॉन्फ़िगरेशन के आधार पर, आप पंक्ति के आगे एक कोड रेखा भी प्राप्त कर सकते हैं @@
, जैसे func1() {
:
@@ -4,7 +4,6 @@ func1() {
यह भी -p
सादे ध्वज के साथ प्राप्त किया जा सकता है diff
।
उदाहरण: पुरानी फ़ाइल:
func1() {
1;
2;
3;
4;
5;
6;
7;
8;
9;
}
यदि हम लाइन हटाते हैं 6
, तो अंतर दिखाता है:
@@ -4,7 +4,6 @@ func1() {
3;
4;
5;
- 6;
7;
8;
9;
ध्यान दें कि यह के लिए सही लाइन नहीं है func1
: यह लाइनों को छोड़ दिया 1
और 2
।
यह कमाल की विशेषता अक्सर यह बताती है कि प्रत्येक हंक किस फंक्शन या क्लास से संबंधित है, जो अंतर की व्याख्या करने के लिए बहुत उपयोगी है।
हेडर का चयन करने के लिए एल्गोरिथ्म कैसे काम करता है बिल्कुल इस पर चर्चा की गई है: गिट भिन्न के हंक हेडर में अंश कहां से आता है?
@@ -1,6 +1,4 @@
"लाइन 1 पर शुरू, पुरानी लाइन की गिनती 6 थी, लेकिन नई लाइन की गिनती 4 है" के रूप में पढ़ा जाएगा
यह वर्तमान हंक श्रेणी की जानकारी है जो यह बताती है कि कौन सी लाइन संख्या इस हंक शुरू और समाप्त होती है।
गहराई से स्पष्टीकरण के लिए http://en.wikipedia.org/wiki/Diff#Unified_format पढ़ें ।