2012-03-21 8 views
12

मैंने कई समाधान सुझाए हैं, लेकिन अगर वे बदल दिए गए हैं, तो उनमें से लगभग सभी फाइलों को व्हाइट फ़ाइल को स्ट्रिप किया गया है, जो एक विकल्प नहीं है। मैंने यह भी कोशिश की है:मैं पूर्व-प्रतिबद्ध गिट हुक में केवल बदली गई लाइनों पर पिछली सफेद जगह को कैसे हटा सकता हूं?

git diff -w --no-color | git apply --cached 

लेकिन ऐसा लगता है कि यह भी काम नहीं करता है। मैं गिट संस्करण 1.6.3.1 का उपयोग कर रहा हूं और इसे अपडेट नहीं कर सकता।

उत्तर

9

मिले जवाब:

git diff --cached --no-color > stage.diff && git apply --index -R stage.diff && git apply --index --whitespace=fix stage.diff && rm -f stage.diff 
+0

मुझे यह पता लगाने में पूरी तरह से बहुत लंबा लगा कि 'गिट लागू' रूट निर्देशिका पर होना चाहिए या यह काम नहीं करेगा। –

+0

आंशिक रूप से चरणों की फाइलों पर काम नहीं कर रहा है (लिनक्स पर गिट 1.9.2)। –

1

मेरे पास ऐसी स्क्रिप्ट आसान नहीं है, लेकिन मुझे लगता है कि एक अच्छा प्रारंभिक बिंदु नमूना प्री-प्रतिबद्ध हुक है जो गिट के साथ जहाजों (इससे पहले diff --check में परिवर्तित हो गया था)। कम से कम यह केवल अतिरिक्त लाइनों के बारे में चेतावनी देता है।

gitweb view of pre-commit script

0

यह सवाल थोड़ा पुराना है, लेकिन मुझे मिल गया है

चलाकर git ws git rebase --whitespace=fix

आप एक ऐसी ही उर्फ ​​सेट कर सकते हैं के लिए उपनामित

git config --global alias.ws 'rebase --whitespace=fix' 

था किसी भी ऐसी प्रतिबद्धता को ले लेंगे जिसे आपने अभी तक नहीं धक्का दिया है और केवल उन पंक्तियों पर व्हाइटस्पेस को ठीक करने के बाद उन्हें दोबारा लागू किया है।

संबंधित मुद्दे

 संबंधित मुद्दे