सभी git कमांड में व्हॉट्सएप परिवर्तन पर ध्यान न दें


26

मुझे ऐसी बहुत सी साइटें मिली हैं, जो बताती हैं कि जब आप लाइन एंडिंग बदल रहे हों, या किसी दूसरी फाइल को गड़बड़ करने से रोकने के लिए विविध तकनीकें बदल रहे हों, तो आपको कैसे चेतावनी देनी चाहिए। यह मान लें कि इसके लिए बहुत देर हो चुकी है - पेड़ पहले से ही करता है कि फाइलों की लाइन अंत को टॉगल करें, इसलिए git diffउसी सामग्री के साथ एक नई फ़ाइल के अलावा पुरानी फ़ाइल का घटाव दिखाता है

मैं एक git कॉन्फ़िगरेशन विकल्प या कमांड-लाइन फ़्लैग की तलाश कर रहा हूं, जो diffकेवल उन लोगों को अनदेखा करने के लिए कहता है - यदि दो लाइनें केवल व्हाट्सएप से भिन्न होती हैं, तो दिखावा करें कि वे समान हैं। - मैं कुछ भी है कि फ़ाइल मतभेद पर निर्भर करता है के लिए इस config विकल्प / झंडा काम करने की जरूरत है diff, blame, यहां तक कि merge/ rebaseआदर्श - मैं चाहता हूँ gitपूरी तरह से पिछली श्वेत रिक्ति को, विशेष रूप से लाइन अंत की अनदेखी करने के। मैं उसे कैसे कर सकता हूँ?

जवाबों:


14

अंतर के लिए, वहाँ है git diff --ignore-space-at-eol, जो पर्याप्त होना चाहिए। अंतर और दोष के लिए, आप सभी व्हाट्सएप परिवर्तनों को अनदेखा कर सकते हैं -w: git diff -w, git blame -w

के लिए git applyऔर git rebase, प्रलेखन का उल्लेख है --ignore-whitespace

मर्ज के लिए, ऐसा लगता है कि आपको बाहरी मर्ज टूल का उपयोग करने की आवश्यकता है। आप इस रैपर स्क्रिप्ट (अनटाइटेड) का उपयोग कर सकते हैं, जहां favorite-mergetoolआपका पसंदीदा मर्ज टूल है ; दौड़ो git -c mergetool.nocr.cmd=/path/to/wrapper/script merge। मर्ज का परिणाम यूनिक्स प्रारूप में होगा; यदि आप किसी अन्य प्रारूप को पसंद करते हैं, तो सब कुछ उस भिन्न प्रारूप में परिवर्तित करें, या $MERGEDमर्ज के बाद परिवर्तित करें।

#!/bin/sh
set -e
TEMP=$(mktemp)
tr -d '\013' <"$BASE" >"$TEMP"
mv -f "$TEMP" "$BASE"
TEMP=$(mktemp)
tr -d '\013' <"$LOCAL" >"$TEMP"
mv -f "$TEMP" "$LOCAL"
TEMP=$(mktemp)
tr -d '\013' <"$REMOTE" >"$TEMP"
mv -f "$TEMP" "$REMOTE"
favorite-mergetool "$@"

मिश्रित लाइन अंत के साथ परेशानी को कम करने के लिए, सुनिश्चित करें कि पाठ फ़ाइलों को इस प्रकार घोषित किया गया है

यह भी देखें कि क्या लाइन-एंडिंग के अंतर को अनदेखा करना संभव है? स्टैक ओवरफ्लो पर।


क्या कोई भी विन्यास हमेशा -w ध्वज के साथ git दोष का उपयोग करता है?
थायेन

@Thayne नहीं कि मुझे पता है। आप जैसे उपनाम को परिभाषित कर सकते हैं, bl = blame -wलेकिन आप अंतर्निहित कमांड के नाम को फिर से परिभाषित नहीं कर सकते हैं और मुझे इसे डिफ़ॉल्ट बनाने के लिए एक कॉन्फ़िगरेशन विकल्प नहीं दिखता है। लेकिन मैं एक गिट विशेषज्ञ नहीं हूं।
गिलेस एसओ- बुराई को रोकना '

के लिए git status?
एजाज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.