.itignore को Git द्वारा अनदेखा किया जाता है


1508

मेरी .gitignoreफ़ाइल को Git द्वारा अनदेखा किया जा रहा है - क्या .gitignoreफ़ाइल दूषित हो सकती है? कौन सा फ़ाइल प्रारूप, लोकेल या संस्कृति Git की उम्मीद करती है?

मेरा .gitignore:

# This is a comment
debug.log
nbproject/

इससे आउटपुट git status:

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       debug.log
#       nbproject/
nothing added to commit but untracked files present (use "git add" to track)

मैं चाहूंगा debug.logऔर nbproject/न जाने वाली फ़ाइलों की सूची में दिखाई देने के लिए।

मुझे इसे ठीक करने के लिए कहां देखना शुरू करना चाहिए?


56
सुनिश्चित करें कि आपकी .gitignoreफ़ाइल का उपयोग ANSIया UTF-8एन्कोडिंग है। यदि यह कुछ और का उपयोग करता है Unicode BOM, तो संभव है कि Git फ़ाइल को न पढ़े।
ADTC

8
@ADTC यह बिल्कुल मेरी मशीन (विंडोज़) पर समस्या थी। मैंने echo "file" > .gitignorePowerShell में उपयोग किया है, फ़ाइल में UCS-2 एन्कोडिंग था!
मारियोडीएस

7
git rm --cached debug.log nbproject/
गायन वेराकुट्टी

4
यहाँ पहली टिप्पणी का उत्तर क्यों नहीं है, मुझसे परे है
RedOrav

2
@MattParkins आह मैं इसे अब देख रहा हूं, यह अभी भी मुझे आश्चर्यचकित करता है कि इस तरह के एक सरल और बिंदु उत्तर को एक टिप्पणी के रूप में दफन किया गया है या कि वास्तविक स्वीकृत एक नीचे है। धन्यवाद!
रेडऑवर

जवाबों:


3114

यहां तक ​​कि अगर आपने अभी तक फ़ाइलों को ट्रैक नहीं किया है, तो Git आपको उनके साथ जोड़ने के बाद भी उनके बारे में "पता" करने में सक्षम है .gitignore

चेतावनी: पहले अपने वर्तमान परिवर्तन करें, या आप उन्हें खो देंगे।

फिर अपने Git रिपॉजिटरी के शीर्ष फ़ोल्डर से निम्न आदेश चलाएँ:

git rm -r --cached .
git add .
git commit -m "fixed untracked files"

8
मुझे "git rm [options] [-] <file> ..." मिला, जब मैंने "git rm -r - cached" को आज़माया। अगर यह मायने रखता है, तो मैं Windows के लिए GitHub में "टूल-> यहां एक शेल खोलें" पर क्लिक करने के बाद PowerShell के भीतर Git का उपयोग कर रहा हूं।
सूट्स

61
विंडोज पर: git rm -r - कैश्ड और गिट ऐड।
हाउस

90
पहले अपने सभी परिवर्तनों को करने के लिए जागरूक रहें , अन्यथा आप सभी परिवर्तित फ़ाइलों पर नियंत्रण खो देंगे !!
कॉस्मिन

45
पहले 3 टिप्पणीकारों को लगता है कि अंत में डॉट छूट गया। इसका मतलब है हर फाइल। "गिट -rm -r - कैशेड।" <- डॉट को नोटिस करें।
क्रिस्टोफ़ डे ट्रॉयर

18
यदि आप कमिट नहीं करना चाहते हैं, तो एक बदलाव यह है कि आप अपने बदलावों को शेल्फ पर रखें: "गिट स्टैश"। उपरोक्त आदेश चलाएँ। और "गिट स्टैश पॉप" चलाएं
इवान वोरोशिलिन

335

यदि ऐसा लगता है कि Git आपके .gitignoreफ़ाइल में किए गए परिवर्तनों को सूचित नहीं कर रहा है , तो आप निम्नलिखित बिंदुओं की जांच करना चाहते हैं:

  • एक वैश्विक .gitignoreफ़ाइल हो सकती है जो आपके स्थानीय के साथ हस्तक्षेप कर सकती है
  • जब आप .gitignore फ़ाइल में कुछ जोड़ते हैं, तो यह प्रयास करें:

    git add [uncommitted changes you want to keep] && git commit
    git rm -r --cached .
    git add .
    git commit -m "fixed untracked files"
    
  • यदि आप .gitignore फ़ाइल से कुछ हटाते हैं, और उपरोक्त चरण शायद काम नहीं करते हैं, यदि आपको लगता है कि ऊपर दिए गए चरण काम नहीं कर रहे हैं, तो प्रयास करें :

    git add -f [files you want to track again]
    git commit -m "Refresh removing files from .gitignore file."
    
    // For example, if you want the .java type file to be tracked again,
    // The command should be:
    //     git add -f *.java
    

3
शायद आप अपने चरण 3 को जोड़ने के लिए @AlinHuruba का उत्तर संपादित कर सकते हैं?
बेंज

@Benj आपकी सलाह के लिए धन्यवाद, मुझे AlinHuruba का जवाब नहीं मिला, मुझे नहीं पता कि क्या अंतर है, इसलिए कृपया मुझे सीधे बताएं।
ifeegoo

2
चरण 3 मैं क्या जरूरत है। अधिकांश उत्तर सिर्फ यह बताते हैं कि जिस फाइल को हम अनट्रैक करना चाहते हैं, उसे कैसे हटाएं। विपरीत दृष्टिकोण के लिए धन्यवाद।
युंग

आशा है कि यह आपकी मदद करता है!
ifeegoo

7
git rm -r --cached .मेरे लिए काम किया
जेसन

197

फिक्स्ड। ठीक है, मैंने विंडोज पर नोटपैड में .gitignore फ़ाइल बनाई और यह काम नहीं कर रहा था। जब मैंने लिनक्स पर .gitignore फ़ाइल देखी, तो यह संगठित अस्पष्टता की तरह लग रहा था - शायद नोटपैड ने ASCII या जो भी 8-बिट है, उसके बजाय यूनिकोड लिखा था।

इसलिए मैंने अपने लिनक्स बॉक्स पर फ़ाइल को फिर से लिखा है, और जब मैंने इसे विंडोज में वापस खींच लिया तो यह ठीक काम करता है! हुर्रे!


77
नोटपैड में केवल "सेव एज़" डायलॉग में एन्कोडिंग "एएनएसआई" चुनें। या बेहतर अभी तक, एक उचित पाठ संपादक प्राप्त करें - आखिरकार आप एक प्रोग्रामर हैं :) ... मैं "प्रोग्रामर नोटपैड" की सिफारिश कर सकता हूं, अन्य लोग नोटपैड ++ पसंद करते हैं और वहां सचमुच सैकड़ों और हैं।
0xC0000022L

1
हे, हाँ, मुझे इसे नेटबीन्स (जो मैं उस समय उपयोग कर रहा था), ग्रहण या दृश्य स्टूडियो में बनाना चाहिए था। मैं सिर्फ कमांडलाइन से यह सोचकर कहता हूं कि इससे कोई फर्क नहीं पड़ेगा।
मैट पार्किंस

8
मेरी समस्या भी इसी तरह की थी - मेरा .itignore एक BOM के साथ UTF8 का उपयोग कर रहा था । बस इसे बिना किसी BOM के UTF8 के रूप में सहेजा गया और यह जादुई रूप से काम करने लगा।
फिल

13
यह मेरी समस्या भी थी। मैंने "। Eign dirName> .gitignore" के साथ .gitignore फ़ाइल बनाई थी, क्योंकि विंडोज़ इसे "" से शुरू होने वाली फ़ाइलों को बनाने के लिए ऐसा दर्द देता है। इस तरह से बनाई गई फ़ाइल की एन्कोडिंग गिट द्वारा अपठनीय थी, और इसने इसकी जगह बाइनरी फ़ाइल के रूप में व्याख्या की। नोटपैड ++ में "एन्कोडिंग -> UTF-8" पर क्लिक करें, सहेजें, किया गया।
लौरा

4
@ समस्या में @Laura जैसी ही समस्या थी - फ़ाइल डिफ़ॉल्ट रूप से UTF16 के रूप में सहेजी गई है।
म्रतव

113

अपनी परियोजना में एक और कमिट जोड़ने के बिना, एक लाइन .gitignoreकाम करने के लिए पर्याप्त होगी जैसा कि माना जाता है:

git rm -r --cached debug.log nbproject

यह उन्हें भंडार से निकाल देगा, लेकिन फिर भी उन्हें शारीरिक रूप से बनाए रखेगा। सादे अंग्रेजी में, यह उनसे संबंधित परिवर्तनों के किसी भी इतिहास को हटा देता है, और भविष्य के किसी भी प्रतिबद्ध में उनके परिवर्तन को ट्रैक नहीं करेगा। आपको यहां बेहतर स्पष्टीकरण मिल सकता है


1
ठीक उसी तरह काम किया जैसे मैं चाहता था - मेरे पास केवल 1 फ़ाइल थी जिसे ठीक से ट्रैक नहीं किया गया था। : मैं उसकी सामग्री को नोटपैड में सहेजा जाता है और किया git rm -r --cached someFile.phpहै और यह एक आकर्षण की तरह काम किया :)
ShayLivyatan

@ एफएमएफएफ इसे रिपॉजिटरी से हटा देगा लेकिन फिर भी उन्हें भौतिक रूप से सादे अंग्रेजी में रखेगा, यह उनसे संबंधित परिवर्तनों के किसी भी इतिहास को हटा देता है, और भविष्य के किसी भी प्रतिबद्ध में उनके बदलाव को ट्रैक नहीं करेगा। एक बेहतर खोज जो आपको यहां मिल सकती है: stackoverflow.com/questions/37279654/…
H Aµdø17

मुझे एक "घातक: pathspec 'डिबग.लॉग' किसी भी फाइल से मेल नहीं खाता"
माइकल

45

इस समस्या का एक और कारण रिक्त स्थान या बयान से पहले टैब है:

उदाहरण:

# Be aware of the following:
 notWorkingIgnore.*
workingIgnore.*

और जैसा कि एक अनुगामी स्थान के नीचे टिप्पणी द्वारा बताया गया है, एक मुद्दा भी हो सकता है:

# Be aware of the following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace

11
एक अनुगामी स्थान मेरी समस्या थी, जिसे खोजने के लिए और भी मुश्किल है।
आमेर

3
एक अनुगामी व्हाट्सएप समस्या भी थी।
ट्रेफेक्स

3
हाँ, यहाँ वही। मुझे लगा कि मैं फ़ाइल पैटर्न के बाद टिप्पणी लिख सकता हूं *.txt # Tex files:। लेकिन समझ में आता है: "एक्सटेंशन के साथ फाइलों को अनदेखा करें txt "
एडम लीबुसा

3
मेरा शब्द, मुझे इस 15-उत्तोलित उत्तर को खोजने में 2 दिन लगे। यह अधिक योग्य है।
fordcars

2
आपने अभी एक समस्या का समाधान किया जो मैंने महीनों तक किया ... धन्यवाद!
आर्किल्स

36

मैंने देखा कि एन्कोडिंग का .gitignoreप्रभाव हो रहा था - यदि फाइल यूनिकोड थी, तो इसे नजरअंदाज कर दिया गया था, अगर यह ASCII था, तो यह नहीं था।

प्रक्रिया:

  1. स्थिति की पुष्टि करें: PS> git status
  2. Get-FileEncoding के लिए एक फंक्शन बनाएं
  3. परीक्षण .gitignoreएन्कोडिंग:PS> Get-FileEncoding .gitignore
  4. एन्कोडिंग को ASCII में बदलें :PS> Set-Content .gitignore -Encoding Ascii -Value (Get-Content .gitignore)
  5. पुष्टि करें: PS> git status

5
इसके लिए 1000 धन्यवाद। मैं का उपयोग कर अपने सिस्टम पर .gitignore फ़ाइल बनाने गया था touch .gitignoreऔर echo ".db" >> .gitignorepowershell के माध्यम से मार्ग। मैंने पाया कि echo ".db" >> .gitignore"UCS-2 LE-BOM को फाइल एन्कोडिंग सेट कर रहा था, ASCII में एक त्वरित रूपांतरण और gitignore ने काम करना शुरू कर दिया।
बी-रेड

2
आप चरण 2 और 3 को छोड़ कर कोशिश कर सकते हैं
अनिकेत भंसाली

32

अन्य समाधानों की तरह, पहले प्रतिबद्ध रहें और इस बात से अवगत रहें कि आप किसी भी अन-प्रतिबद्ध परिवर्तन को खो देंगे।

मेरे पास इसके साथ बेहतर परिणाम थे:

git rm -r --cached .
git reset HEAD --hard
git status

ध्यान दें कि स्थिति में अब कोई भी संशोधित फाइल नहीं होनी चाहिए।


2
यह मेरे लिए काम नहीं कर रहा है लेकिन ifeegoo का जवाब है
फैनी

21

मेरे मामले में, यह इसलिए है क्योंकि फाइलें पहले से ही भंडार में मौजूद हैं और मैं इसे अनदेखा करने की कोशिश कर रहा हूं।

ये चीजें हैं जो मैंने समस्या को ठीक करने के लिए की हैं:

  • फ़ाइलों को एक अस्थायी फ़ोल्डर में कॉपी करें
  • उन्हें मेरे प्रोजेक्ट फ़ोल्डर से निकालें।
  • उन परिवर्तनों को करें जो उन फ़ाइलों को रिपॉजिटरी से निकालते हैं
  • उन फ़ाइलों को मेरे प्रोजेक्ट फ़ोल्डर में पुनः जोड़ा

तब तक, मैंने उन फ़ाइलों पर किए गए किसी भी परिवर्तन को अनदेखा कर दिया था।

मुझे लगता है कि आप उन फ़ाइलों को अनदेखा नहीं कर सकते जो पहले से ही रिपॉजिटरी पर मौजूद हैं।


मेरे मामले में, वे पहले से ही मंचित थे। आप जो भी सुझाव देते हैं उसे करने के बाद ही, फिर वे चेतावनी देने का प्रयास करते हैं और देखते हैं कि उनका मंचन किया गया था और हटा दिया गया था, क्या मुझे एहसास हुआ कि समस्या थी।
dudeNumber4

19

यहाँ सभी उत्तर वास्तव में वर्कअराउंड हैं। चलाने से पहले आपको .gitignore फ़ाइल बनाने की आवश्यकता है git init। अन्यथा gitकभी नहीं जान पाएंगे कि आपको उन फाइलों को अनदेखा करने की आवश्यकता है, क्योंकि वे पहले से ही ट्रैक किए जा चुके हैं।

echo .idea/ >> .gitignore
git init

यदि आप दैनिक आधार पर विकसित होते हैं, तो मैं आपको सलाह देता हूं कि आप अपनी आदतों पर ध्यान न देने वाली फ़ाइलों को अपनी ~/.gitignore_globalफ़ाइल में जोड़ें। इस तरह, gitपहले से ही पता चल जाएगा कि आपको कौन सी फाइलें (जिसका अर्थ है "आपका उपयोगकर्ता", क्योंकि यह आपके घर की निर्देशिका में एक फ़ाइल है) आमतौर पर अनदेखा करता है।


भगवान का शुक्र है ... आखिरकार एक समाधान जो मेरे लिए काम करता है।
Dbl

~/.gitignore_globalएक विन्यास योग्य नाम है। git config --global core.excludesfileयह देखने के लिए पहले चलाएं कि क्या आपके पास पहले से परिभाषित फ़ाइल है। यदि नहीं, तो भागो git config --global core.excludesfile ~/.gitignore_global
नौमेनन

यदि आप .gitignoreपहली बार नहीं बनाया है तो एक समाधान : ट्रैक की गई फ़ाइल का नाम बदलें। .gitignoreलागू किया जाएगा जैसे कि यह नया था।
नौमेनन

15

उस निर्देशिका को भी देखें जहां आपने रखा था .gitignore

यह आपके प्रोजेक्ट के मूल में होना चाहिए :

./myproject/.gitignore

अंदर नही

./myproject/.git/.gitignore

9

विशेष रूप से विंडोज उपयोगकर्ताओं के लिए: यदि आपके पास अनटैक की गई फाइलें हैं और कैश्ड फ़ाइलों को हटाने / हटाने से काम नहीं चल रहा है। PowerShell को खोलने का प्रयास करें और .ignignore फ़ाइल को UTF-8 एन्कोडिंग में परिवर्तित करें:

$Myfile = Get-Content .\.gitignore`
$Myfile | Out-File -Encoding "UTF8" .gitignore

आपको केवल उस निर्देशिका के लिए .gitignore फ़ाइल को एन्कोड करने के लिए केवल एक बार ऐसा करने की आवश्यकता है, और चूंकि फ़ाइल तब सही ढंग से एन्कोडेड है, जब भी आप भविष्य में फ़ाइल को संपादित करते हैं तो यह काम करना चाहिए। मेरा मानना ​​है कि यह GitHub के साथ एक गड़बड़ के कारण है। गैर-यूटीएफ -8 एन्कोडिंग को .gitignore फ़ाइल के लिए पढ़ने के बारे में नहीं है। जहाँ तक मैं जानता हूँ कि यह समस्या अभी तक विंडोज के लिए हल नहीं हुई है। यह बहुत बड़ा सौदा नहीं है, बस काम नहीं करने पर डिबग करने का दर्द।


8

इसके साथ एक और समस्या .gitignoreहो सकती है, खासकर विंडोज यूजर के लिए। Git आपको पसंद नहीं है जब आप नाम लेते हैं .gitignore(जैसे कि unity.gitignore)।

आप इसे हमेशा .gitignoreया विंडोज पर नाम देना चाहेंगे , .gitignore.जैसा कि विंडोज को लगता है कि आप इसे बिना किसी नाम के नाम बदलने की कोशिश कर रहे हैं।


7

मैं बस इस मुद्दे में भाग गया। मेरे .itignore फ़ाइल के भीतर की सामग्री अनट्रेक्ड फ़ाइलों की सूची में दिखाई देती रही।

मैं इसे अनदेखा फ़ाइल बनाने के लिए उपयोग कर रहा था:

echo "node_modules" > .gitignore

यह पता चला है कि दोहरे उद्धरण मेरे लिए समस्या पैदा कर रहे थे। मैंने अनदेखा फ़ाइल को हटा दिया और फिर बिना उद्धरणों के फिर से कमांड का उपयोग किया, और यह उम्मीद के मुताबिक काम किया। मुझे फ़ाइल एन्कोडिंग के साथ गड़बड़ करने की आवश्यकता नहीं थी। मैं Cmder का उपयोग करके विंडोज 10 मशीन पर हूं

उदाहरण:

echo node_modules > .gitignore

अजीब, इस गूंज के बयान ने एक समस्या तय की, जो स्थानीय रूप से एक अनदेखी फ़ाइल थी जिसे मैंने दुर्घटना पर हटा दिया और फिर से बनाया गया एक सराहनीय, अनट्रैक फ़ाइल के रूप में दिखाई दे रही थी। किसी कारण से, भले ही इसने मेरी अनदेखी फ़ाइल को नहीं बदला, लेकिन इसने मेरी समस्या को ठीक कर दिया।
पैट्रिक

6

मेरे लिए पिछले उत्तरों में से किसी ने भी काम नहीं किया। मुझे पाया .gitignoreगया exclude.txtफ़ाइल में पाठ की प्रतिलिपि बनाना था

<Your-project-folder>\.git\info

एक बार हो जाने के बाद, अपने परिवर्तनों को ताज़ा करें और सभी अनट्रेक्ट की गई फ़ाइलें चली गईं। हमेशा की तरह।


6

मेरा मुद्दा था (जैसा कि ओपी ने सुझाव दिया है) एक भ्रष्ट .gitignore फ़ाइल है। मुझे विश्वास नहीं था कि यह संभावना थी और जब तक कि बाकी सब विफल नहीं हो जाता, तब तक उसने इसकी अनदेखी की। भ्रष्टाचार दिखाई नहीं दियाvi , लेकिन फ़ाइल के प्रारंभ में दो बाइट्स थे जिनके कारण .ignignore फ़ाइल को अनदेखा किया गया था। मेरे लिए, ये केवल तब दिखा जब मैंने टाइप किया था cat .gitignore, जो दिखाया गया था:

��# Built application files
*.apk
*.ap_

# ...

मुझे नहीं पता कि ये वहाँ कैसे समाप्त हो गए, लेकिन फ़ाइल को पुनः बनाना इस मुद्दे को निर्धारित करता है। भ्रष्ट फ़ाइल के हेक्स विश्लेषण ने निम्नलिखित दिखाया:

user@dev ~/project/myproject $ xxd -b .gitignore
00000000: 11111111 11111110 00100011 00000000 00100000 00000000  ..#. .
00000006: 01000010 00000000 01110101 00000000 01101001 00000000  B.u.i.

2
यह UTF-8-एन्कोडेड फ़ाइल में UTF-16 बाइट ऑर्डर मार्क जैसा दिखता है। en.wikipedia.org/wiki/Byte_order_mark
jsageryd

6

मुझे यह समस्या थी, एक .ignignore फ़ाइल जिसमें यह पंक्ति है:

lib/ext/

मुझे बस एहसास हुआ कि वास्तव में, यह निर्देशिका एक फ़ोल्डर के लिए कहीं और एक प्रतीकात्मक लिंक है:

ls -la lib/ext/
lrwxr-xr-x 1 roipoussiere users 47 Feb  6 14:16 lib/ext -> /home/roipoussiere/real/path/to/the/lib

लाइन पर lib/ext/, Git वास्तव में एक फ़ोल्डर की तलाश करता है , लेकिन एक प्रतीकात्मक लिंक एक फ़ाइल है , इसलिए मेरीlib फ़ोल्डर को अनदेखा नहीं किया गया है।

मैं बदल कर भी इस तय lib/ext/द्वारा lib/extमेरी .gitignore फ़ाइल में।


5

मुझे भी बिल्कुल यही समस्या है। मेरा मानना ​​है कि यह मुद्दा सीआर बनाम सीआर + एलएफ विसंगति था। मैंने अपने .gitignore में सीएमडी (विंडोज 7 पर) और निम्न कमांड का उपयोग करके चीजों को दबाया:

खराब:

echo "file_to_be_ignored.py" >> .gitignore<br>
echo "*~" >> .gitignore

आदि।

मुद्दा यह था कि यह कमांड Git के नए-नए पहचान (या तो CR या CR + LF जब Git दूसरे की अपेक्षा करता है) को पहचानने के लिए सही एंड-ऑफ-लाइन मार्कर नहीं रखता है। मैंने मैन्युअल रूप से प्रत्येक नई पंक्ति को विम (बचाव के लिए विम!) में बदलकर समस्या हल की और यह पूरी तरह से काम किया।

नोटपैड ++ या विम (आदर्श) में अपने .itignore को संपादित करने का प्रयास करें। यहां तक ​​कि अगर फ़ाइल को ऐसा लगता है कि यह सही ढंग से स्वरूपित है, तो नए लिंक को बदलने का प्रयास करें। यह अजीब लगता है, मुझे पता है, लेकिन यह मेरे लिए काम करता है। : डी


4

ठीक है, इसलिए मेरे मामले में स्वीकृत समाधान काम नहीं आया, और जो काम किया गया है वह यहां वर्णित है:

क्या Visual Studio 2013 आपकी .gitignore फ़ाइल को अनदेखा कर रहा है?

संक्षेप में:

  • Visual Studio को बंद करें।
  • अपने .it फ़ोल्डर में नेविगेट करें
  • हटाएं ms-persist.xml
  • विज़ुअल स्टूडियो को पुनरारंभ करें

3

एक बात यह भी देखिए: क्या आप अपनी .itignore फाइल को सही लाइन एंडिंग के साथ सहेज रहे हैं?

खिड़कियाँ:

यदि आप इसे विंडोज पर उपयोग कर रहे हैं, तो क्या आप इसे विंडोज लाइन एंडिंग के साथ बचा रहे हैं? सभी प्रोग्राम डिफ़ॉल्ट रूप से ऐसा नहीं करेंगे; नोटपैड ++ और कई पीएचपी संपादक लिनक्स लाइन एंडिंग के लिए डिफ़ॉल्ट हैं ताकि फाइलें सर्वर के अनुकूल रहें। इसे जांचने का एक आसान तरीका, विंडोज नोटपैड में फाइल को खोलना है। यदि सब कुछ एक पंक्ति में दिखाई देता है, तो फ़ाइल को लाइन लाइन अंत के साथ सहेजा गया था।

लिनक्स:

यदि आप लिनक्स वातावरण में काम करने वाली फ़ाइल से परेशान हैं, तो फ़ाइल को Emacs या नैनो जैसे किसी संपादक में खोलें । यदि आप कोई गैर-मुद्रण योग्य वर्ण देखते हैं, तो फ़ाइल को विंडोज लाइन एंडिंग के साथ सहेजा गया था।


3

एक अन्य संभावित कारण - एक ही समय में चल रहे Git क्लाइंट के कुछ उदाहरण । उदाहरण के लिए, "गिट शेल" + "गिटहब डेस्कटॉप", आदि।


मेरे साथ ऐसा हुआ। मैं मुख्य ग्राहक के रूप में "GitHub डेस्कटॉप" का उपयोग कर रहा था, और यह कुछ नई .itignore सेटिंग्स को अनदेखा कर रहा था: प्रतिबद्ध होने के बाद:

  1. आप कुछ करें।
  2. अगला, कमिट करें: यह .ignignore सेटिंग्स को अनदेखा करता है। कमिट में .gitignore में उल्लिखित बहुत सारी अस्थायी फाइलें शामिल हैं।
  3. स्पष्ट कैश कैश; जांचें कि क्या .gitignore UTF-8 है; फ़ाइलों को हटा दें → प्रतिबद्ध → फ़ाइलों को वापस ले जाएं; एक प्रतिबद्ध छोड़ें - कुछ भी मदद नहीं की।

कारण : विज़ुअल स्टूडियो कोड एडिटर पृष्ठभूमि में उसी खोले गए भंडार के साथ चल रहा था। विजुअल स्टूडियो कोड में बिल्ट-इन Git नियंत्रण है, और यह कुछ संघर्षों के लिए बनाता है।

समाधान : कई, छिपे हुए Git क्लाइंट्स को डबल-चेक करें और एक बार में केवल एक Git क्लाइंट का उपयोग करें, विशेष रूप से Git कैश क्लियर करते समय।


3

कुछ शानदार जवाब पहले से ही हैं, लेकिन मेरी स्थिति थकाऊ थी। मैंने Win10 पर एक स्थापित PLM (उत्पाद जीवनचक्र प्रबंधन) सॉफ्टवेयर के स्रोत को संपादित किया और बाद में निर्णय लिया, "मुझे शायद इसे git रेपो बनाना चाहिए था।"

तो, कैश विकल्प सीधे मेरे लिए काम नहीं करेगा। उन लोगों के लिए पोस्ट करना, जिन्होंने प्रारंभिक कार्य का एक गुच्छा बनाने के लिए स्रोत नियंत्रण जोड़ा हो सकता है और .gitignoreBUT काम नहीं कर रहा है, आप काम का एक गुच्छा खोने से डर सकते हैं इसलिए git rm --cachedआपके लिए नहीं है।

महत्वपूर्ण: यह वास्तव में है क्योंकि मैंने एक "प्रोजेक्ट" में बहुत देर से गिट को जोड़ा है जो बहुत बड़ा है और मेरे। मैंने कभी नहीं किया है। मैं इस के साथ दूर कर सकते हैं :)

सबसे पहले, मैंने अभी किया:

rm -rf .git
rm -rf .gitignore

फिर, मुझे अपने परिवर्तनों की एक तस्वीर लेनी थी। फिर, यह एक इंस्टॉल उत्पाद है जिस पर मैंने बदलाव किया है। शुद्ध गुरु शाखा के पहले वचन के लिए बहुत देर हो चुकी है। इसलिए, मुझे उस सूची की आवश्यकता थी जो मैंने बदल दी है क्योंकि मैंने प्रोग्राम को जोड़कर स्थापित किया है> changed.log निम्नलिखित में से किसी एक को :

शक्ति कोशिका

# Get files modified since date.
Get-ChildItem -Path path\to\installed\software\ -Recurse -File | Where-Object -FilterScript {($_.LastWriteTime -gt '2020-02-25')} | Select-Object FullName

दे घुमा के

# Get files modified in the last 10 days...
find ./ -type f -mtime -10

अब, मेरे पास मेरी सूची है कि मैंने पिछले दस दिनों में क्या बदला (चलो कहने के अलावा यहां सर्वोत्तम प्रथाओं में नहीं मिलता, हां, मैंने खुद से ऐसा किया है)।

एक नई शुरुआत के लिए, अब:

git init .
# Create and edit .gitignore

मुझे अपनी परिवर्तित सूची की तुलना अपने बढ़ते हुए .Itignignore से करनी थी, git statusजैसे-जैसे मैं इसे सुधारता जा रहा हूँ, वैसे-वैसे मेरे edits in .ignignore को पढ़ा जा रहा है।

अंत में, मैं वांछित बदलावों की सूची में हूँ! मेरे मामले में यह बॉयलरप्लेट है - गंभीर xml के साथ कुछ थीम काम इस सॉफ्टवेयर के खिलाफ एक देव प्रणाली को चलाने के लिए विशिष्ट है जिसे मैं अन्य देवों को हथियाने और योगदान देने के लिए रेपो में डालना चाहता हूं ... यह हमारी मास्टर शाखा होगी, इसलिए प्रतिबद्ध, धक्का, और, नए काम के लिए आखिरकार!


2

बस उस फ़ोल्डर या फ़ाइल को हटा दें, जो पहले Git में, निम्न कमांड द्वारा किया गया था। फिर gitignore फाइल सही फाइलों को दर्शाएगी।

    git rm -r -f "folder or files insides"

2

यहाँ अन्य उत्तरों से एक मुश्किल बात को कवर नहीं किया गया है। अगर आपके पास इनलाइन टिप्पणियाँ हैं, तो .ignignore फ़ाइल काम नहीं करेगी:

foo/bar # The bar file contains sensitive data so we don't want to make this public

इसलिए, यदि आपके पास ऐसी टिप्पणियां हैं, तो उन्हें इस तरह बदलें:

# The bar file contains sensitive data so we don't want to make this public
foo/bar

2

यह भी एक संभावना है कि आपने .gitignoreफ़ाइल को sudoकमांड से संपादित किया है । मुझे एक ही समस्या का सामना करना पड़ा और कमांड निष्पादित करते समय:, git statusमैं अभी भी "अनदेखा किया जाना चाहिए" फाइलों को देख सकता था।

के nano .gitignoreबजाय के साथ संपादन करने पर sudo nano .gitignore, मैं सही प्रतिबिंब देख सकता था।


2

मैंने echo "..." > .gitignoreविंडोज में PowerShell का उपयोग करके .gitignore बनाया है , क्योंकि यह मुझे विंडोज एक्सप्लोरर में इसे बनाने की अनुमति नहीं देता है।

मेरे मामले में समस्या निर्मित फ़ाइल की एन्कोडिंग थी, और समस्या को हल करने के बाद मैंने इसे एएनएसआई में बदल दिया।


2

मेरे पास भी उबंटू पर एक ही मुद्दा है, मैंने .gitignoreटर्मिनल से बनाया है और यह मेरे लिए काम करता है

touch .gitignore


2

मेरा काम नहीं हो रहा था क्योंकि मैंने लिटरली एक टेक्स्ट डॉक्यूमेंट बनाया है जिसे .ignignore कहा जाता है

इसके बजाय, एक टेक्स्ट डॉक्यूमेंट बनाएं, इसे नोटपैड ++ में खोलें और फिर .itignore के रूप में सहेजें

जब आप इसे बचाते हैं, तो ड्रॉपडाउन से सभी प्रकार (*। *) चुनें।


या gitbash में, बस का उपयोग करें touch .gitignore


1

यदि आप एक नोटपैड ++ उपयोगकर्ता हैं, तो निम्न कार्य करने का प्रयास करें:

नोटपैड ++ का उपयोग करके अपनी .itignore फाइल को खोलें और करें:

मेनू संपादित करेंईओएल रूपांतरणविंडोज प्रारूपसहेजें

git statusफिर से उपयोग करने का प्रयास करें और देखें कि क्या यह आपके लिए काम करता है।

मैंने यहाँ एक ऐसे ही प्रश्न का उत्तर पोस्ट किया है


1

मेरे लिए यह अभी तक एक और समस्या थी। मेरी .itignore फ़ाइल सब कुछ अनदेखा करने के लिए सेट है सामान के अलावा जो मैं इसे अनदेखा नहीं करने के लिए कहता हूं। जैसे:

/*
!/content/

अब इसका स्पष्ट अर्थ है कि मैं Git को .gitignore फ़ाइल को अनदेखा करने के लिए भी कह रहा हूँ। जब तक मैं .gitignore फ़ाइल को ट्रैक नहीं कर रहा था, जो एक समस्या नहीं थी। लेकिन कुछ बिंदु पर मैंने .gitignore फ़ाइल को ही प्रतिबद्ध किया। इसके बाद .gitignore फ़ाइल को ठीक से अनदेखा किया गया।

इसलिए एक और लाइन को जोड़ने से इसे ठीक किया गया:

/*
!/content/
!.gitignore

1

मेरी समस्या यह थी कि मैंने फ़ाइलों को "स्लेश के साथ अलग नहीं" उद्धरण के साथ अनदेखा करने के लिए लिखा था।

यह काम नहीं किया और git द्वारा नजरअंदाज कर दिया गया था:

"db.sqlite3"
"tdd_venv/"

यह ठीक काम किया:

/db.sqlite3
/tdd_venv/

मैंने नोटपैड ++ के साथ खिड़कियों में अपनी फ़ाइल एन्कोडिंग की भी जांच की। एन्कोडिंग को UTF-8 में सेट किया गया था।

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