2013-04-12 7 views
7

मान लीजिए कि मैं * .hi फ़ाइल के लिए सभी फ़ाइलों को जोड़ने के लिए git add (या कुछ अन्य कमांड लाइन निर्देश - मैं .gitignore का उपयोग नहीं कर सकता) का उपयोग करना चाहता हूं। क्या इसे करने का कोई तरीका है? अब तक मैं कोशिश की है:क्या गिट एड के फ़ाइलपटल के लिए नकारात्मक वाक्यविन्यास है?

git add '!*.hi'

git add '!(*.hi)'

मैं यह समझ के रूप में, यह कैसे आप ग्लोब वाक्य रचना में एक निषेध निर्दिष्ट है, और यह भी आप इसे कैसे .gitignore में करते हैं। फिर भी इन दोनों आदेशों के लिए, मुझे त्रुटि fatal: [pattern] did not match any files प्राप्त होती है। इसके लायक होने के लिए, मैं इन आदेशों को विंडोज पावरहेल से चला रहा हूं।

उत्तर

5

एक शुद्ध Git तरह से उन सब को जोड़ने और फिर दूर करने के लिए उन फ़ाइलों को आप फिर से सूचकांक से नहीं करना चाहता होगा --cached केवल उन्हें इंडेक्स से हटाने के लिए आवश्यक है; अन्यथा आप उन फ़ाइलों को हटा देंगे। ध्यान दें कि git rm हमेशा इंडेक्स में "हटाने को जोड़ देगा", इसलिए शायद यह नहीं है कि फाइलों को ट्रैक किए जाने पर आप क्या चाहते हैं। कि अंतिम पंक्ति के बजाय

git add . 
git reset -- *.hi 
+5

आप भी 'कर सकता है Git रीसेट प्रमुख - * .hi' –

+0

@KlasMellbourn अच्छा बिंदु: तो फिर तुम टिप्पणी में git reset का उपयोग करना चाहिए के रूप में Klas Mellbourn सुझाव दिया! यह वास्तव में ऐसा करने का एकमात्र तरीका है यदि '.hi' फ़ाइलों को पहले से ट्रैक किया गया है। – poke

2

PowerShell में, यह काम करता है:

git add . 
git rm --cached *.hi 

:

git add $(Get-ChildItem -Recurse -Exclude '*.hi') 
संबंधित मुद्दे