Git का उपयोग करके रेपो में नहीं दो फ़ाइलों की तुलना कैसे करें


114

मैं दो सीएसएस फ़ाइलों की तुलना करना चाहता हूं जो किसी भी गिट रिपॉजिटरी में नहीं हैं। क्या गिट में ऐसी कार्यक्षमता है?


क्या होगा अगर मैं उपयोग करना चाहता हूं, कहते हैं, --patienceझंडा? क्या आप एक अलग (1) जानते हैं जो ऐसा कर सकता है?
सैमबी

आपको काइल बर्टन के जवाब को स्वीकार करना चाहिए।
ब्रॉडी

जवाबों:


214

gitमानक यूनिक्स की तुलना में भिन्नता अधिक कार्यात्मक है diff। मैं अक्सर ऐसा करना चाहता हूं और चूंकि यह प्रश्न Google पर अत्यधिक रैंक करता है, इसलिए मैं चाहता हूं कि यह उत्तर दिखाई दे।

यह प्रश्न: Git रिपॉजिटरी के बाहर उपयोग कैसे करें git diff --color-words?

दिखाता है कि फ़ाइलों का उपयोग करने के लिए git का उपयोग कैसे करें जहां उनमें से कम से कम एक का उपयोग करके रिपॉजिटरी में नहीं है --no-index:

git diff --no-index file1.txt file2.txt

इससे कोई फर्क नहीं पड़ता कि कौन सा व्यक्ति ट्रैक करता है और कौन सा नहीं है - एक या दोनों को अनट्रैक किया जा सकता है, जैसे:

$ date > x
$ sleep 2
$ date > y
$ git diff --color-words --no-index x y
diff --git a/x b/y
index 6b10c7c..70f036c 100644
--- a/x
+++ a/y
@@ -1 + 1 @@
Wed Jun 10 10:57:45|10:57:47 EDT 2013

रंग यहां नहीं दिखाया जा सकता है इसलिए मैंने उदाहरण में एक पाइप के साथ बदलाव को अलग कर दिया।


14
आप इस व्यवहार डिफ़ॉल्ट चाहता था, तो आप अपने लिए एक उपनाम जोड़ सकता है .bashrcफ़ाइल (या आप जो कुछ भी उपयोग करें):alias diff="git diff --no-index"
counterbeing

1
FYI करें: विंडोज के लिए Git पर एक बग (# 2123) था कि "--no-index" का सम्मान नहीं किया गया था। यह विंडोज v2.21.0 (26 फरवरी 2019) के लिए Git में तय किया गया था।
स्टैकज़ोफज़टफ

पंक्ति "सूचकांक 6b10c7c..70f036c 100644" का क्या अर्थ है? मैं 2 बायनेरिज़ की तुलना कर रहा हूं, वे अलग-अलग हैं, लेकिन यह अंतर के साथ एकमात्र पंक्ति है ...
लुकास सालिच

hi @LukasSalich ऐसा लगता है कि लाइन फॉर्मेट को git द्वारा प्रलेखित किया जा सकता है (उदाहरण: git-scm.com/docs/diff-format ) git का भिन्न बायनेरी afaik को अलग करने का प्रयास नहीं करता है, इसलिए मुझे लगता है कि लाइन का अर्थ है कि वे भिन्न हैं , दो SHAs जहां एक बदलाव की पहचान की गई थी और फिर फ़ाइल की अनुमति।
काइल बर्टन

3

diff -u

गिट के अंतर के समान एकीकृत संदर्भ आउटपुट देगा।


1
हालांकि, यह अच्छा रंग नहीं करता है या पेजर का उपयोग नहीं करता है।
Xiong Chiamiov

यह एक अच्छे शब्द को अलग करने की अनुमति नहीं देता है, या तो ( git diff --word-diff)।
स्टीफन वैन डेन अकबर

0

बस अंतर कमांड का उपयोग करें:

diff file1.ext file2.ext

2
हम्के, मैंने यह कोशिश की, लेकिन मेरी राय में, उत्पादन सिर्फ बकवास था ... शायद मैं गलत था ...
सेड्रिक रीचेनबैक

आप कुछ GUI टूल चला सकते हैं जो बेहतर दृश्य प्रदान करेगा, जैसे gvimdiff, kompare या समान
यूजीन सजाइन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.