.gitignore este ignorat de Git

Mea .gitignore dosarul lui pare să fie ignorat de Git - ar putea.gitignore` fișierul să fie corupt? Care format de fișier, locale sau cultura face Git aștepta?

Mea .gitignore:

# This is a comment
debug.log
nbproject/

De ieșire din starea git`:

# 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)

Mi-ar place debug.jurnal " și " nbproject/ să nu apară în untracked lista de fișiere.

De unde să încep căutarea de a repara acest lucru?

Comentarii la întrebare (9)

Chiar dacă te-ai't pe senile fișiere de până acum, Git pare a fi capabil de a "stiu" despre ele, chiar și după ce le adăugați la .gitignore.

NOTĂ: în Primul rând comite modificările actuale, sau le va pierde.

Apoi rulați următoarele comenzi din partea de sus folder de depozit Git:

git rm -r --cached .
git add .
git commit -m "fixed untracked files"
Comentarii (29)

Dacă ți se pare că Git e't să observe modificările făcute la ta `.gitignore dosarul lui, s-ar putea să doriți să verificați următoarele puncte:

  • Ar putea fi un global .gitignore de fișier, care ar putea interfera cu unul local
  • Când adăugați ceva într-un .gitignore fișier, încercați acest lucru:

git add [neangajate schimbări doriți să păstrați] && git commit git rm -r --cache . git add . git commit -m "fix untracked fișiere"

  • Dacă scoateți ceva de la un .gitignore fișier, și pașii de mai sus poate că don't de lucru,dacă ați găsit pașii de mai sus nu funcționează, încercați acest:

git add-f [fișierele pe care doriți să urmăriți din nou] git commit -m "Refresh eliminarea fișiere .gitignore fișier."

// De exemplu, dacă doriți .java tip de fișier pentru a fi urmărite din nou, // Comanda ar trebui să fie: // git add-f *.java

Comentarii (12)
Soluția

Fix. OK, am creat .gitignore fișierul în Notepad în Windows și nu a fost't de lucru. Când am privit .gitignore fișier de pe Linux părea organizate păsărească - poate Notepad a scris Unicode, mai degrabă decât ASCII sau orice 8-bit este.

Așa că am rescris de fișiere pe Linux box, și când am tras-o înapoi în Windows funcționează bine! Ura!

Comentarii (15)

Fără să mai adăugăm o comite la proiect, o linie va fi suficient pentru a face `.gitignore de lucru așa cum ar trebui să:

git rm -r --cached debug.log nbproject

Acest lucru le va elimina din depozit, dar încă mai păstrează-le fizic. În limba engleză, se șterge orice istorie de modificări legate de ele, și, de asemenea, nu va urmări schimbarea lor în orice viitoare a comis-o. S-ar putea găsi o explicație mai bună aici.

Comentarii (4)

O altă cauză a acestei probleme este de spații libere sau file înainte de declarație:

Exemplu:

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

Și după cum a subliniat de comentariu de mai jos un spațiu la final poate fi o problemă la fel de bine:


# Be aware of the following:
notWorkingIgnore.* #
Comentarii (5)

Ca și cu alte soluții, comite prima și de a fi conștienți de faptul că veți pierde nici un-angajat modificări.

Am avut rezultate mai bune cu aceasta:

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

Rețineți că statutul ar trebui't au orice fișiere modificate acum.

Comentarii (1)

Am observat că codificarea .gitignore avea un efect ... dacă fișierul a fost Unicode, acesta a fost ignorat, dacă a fost ASCII, nu a fost't.

Proces:

  1. Verifica starea: PS> git status
  2. Creați o funcție a Lua-FileEncoding
  3. Test .gitignore's codare: PS> Du-FileEncoding .gitignore
  4. Schimba codificarea pentru a ASCII: PS> Set-de Conținut .gitignore -Codificarea Ascii -Valoare (Get-Content .gitignore)
  5. Confirma: PS> git status
Comentarii (2)

În cazul meu, a's, deoarece fișierele deja existente în depozit și am'm încercat să-l ignore.

Acestea sunt lucrurile pe care am făcut-o pentru a rezolva problema:

  • Copia fișierele într-un folder temporar
  • Scoateți-le din dosarul de proiect.
  • Comite modificările care elimina aceste fișiere din depozit
  • Re-adăugat acele fișiere meu director de proiect

De atunci, orice modificare pe care am facut aceste fișiere au fost ignorate.

Cred că poți't ignora fișierele care există deja pe repository.

Comentarii (1)

Toate raspunsurile de aici sunt de fapt soluții. Ai nevoie pentru a crea .gitignore fișier înainte de a alerga git init. În caz contrar, git nu va ști niciodată ce trebuie să ignore aceste fișiere, deoarece acestea au fost urmărite deja.

echo .idea/ >> .gitignore
git init

Dacă vă dezvolta pe o bază de zi cu zi, te sfătuiesc să adăugați obișnuită ignorat fișiere la ~/.gitignore_global de fișier. Așa, git va ști deja care fișierele (ceea ce înseamnă "dvs. de utilizator", deoarece's un fișier în directorul tau de casa), de obicei ignora.

Comentarii (1)

De asemenea, a verifica afară de director în cazul în care ai pus .gitignore.

Ar trebui să fie în rădăcina proiectului:

./myproject/.gitignore

Nu în

./myproject/.git/.gitignore
Comentarii (0)

Special pentru utilizatorii de Windows: Dacă aveți untracked fișiere și de compensare/eliminarea fișierele stocate în memoria cache nu este de lucru. Încercați să deschideți PowerShell și de conversie .gitignore fișier UTF-8 codificare:

PowerShell $Myfile = Get-Conținut .\.gitignore` $Myfile | Out-File-Codare "UTF8" .gitignore

Aveți nevoie pentru a face asta o singura data pentru a codifica .gitignore fișier pentru acel director, și deoarece fișierul este apoi codificat corect, ori de câte ori vă editați fișierul în viitor ar trebui să funcționeze. Cred că acest lucru se datorează o problemă cu GitHub nu sunt pe cale de a citi non codificarea UTF-8 pentru un .gitignore fișier. Cât de departe am'm conștienți de această problemă nu a fost încă rezolvată pentru Windows. L's nu prea mare lucru, doar o durere de depanare atunci când l's nu funcționează.

Comentarii (0)

Nu's o altă problemă cu care .gitignore care s-ar putea întâmpla, mai ales pentru un utilizator Windows. Git nu-i place când îl nume.gitignore(cum ar fiunitate.gitignore`).

Te'll să-l nume .gitignore, sau pe Windows, .gitignore. ca Windows crede că sunteți încercarea de a redenumi fără un nume de fișier.

Comentarii (0)

Am întâlnit această problemă. Conținutul în interiorul meu .gitignore fișier a continuat să apară în lista de untracked fișiere.

Am fost folosind acest lucru pentru a crea fișier ignore:

echo "node_modules" > .gitignore

Se pare că dubla citate au fost cauzează problema pentru mine. Am eliminat fișierul și apoi folosite la comanda din nou fără ghilimele, și a mers cum era de așteptat. Nu este nevoie să te pui cu codare fișier. Am'm pe un Windows 10 mașină folosind Cmder.

Exemplu:

echo node_modules > .gitignore
Comentarii (1)

Pentru mine nici unul din răspunsurile precedente a lucrat. Am avut de a copia .gitignore text în exclude.txt dosarul lui a fost găsit la

\.git\info

Odată ce ați făcut, refresh modificările și toate untracked fișierele sunt plecat. Comite, ca de obicei.

Comentarii (0)

Problema mea a fost (ca OPERAȚIUNE a sugerat) un corupt .gitignore fișier. Am't cred că a fost și a ignorat posibilitatea, până când orice altceva a esuat. Corupția am't apar în "vi", dar au fost doi octeți de la începutul fișierului care a cauzat .gitignore fișier pentru a fi ignorat. Pentru mine, aceste numai a apărut atunci când am scris cat .gitignore, care a arătat:

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

# ...

Nu am nici o idee cum au ajuns acolo, dar a recrea fișierul rezolvat problema. Un hex analiza fișier corupt a arătat următoarele:

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

Eu am avut problema asta, cu un .gitignore fișier care conține această linie:

lib/ext/

Tocmai am realizat că, de fapt, acest director este un link simbolic într-un dosar în altă parte:

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

Pe linia lib/ext/, Git, de fapt, se pare pentru o dosar, dar o legătură simbolică este o fișier mea " lib " dosarul nu este de ignorat.

L-am reparat prin înlocuirea lib/ext/ " cu " lib/ext meu .gitignore fișier.

Comentarii (0)

Am avut aceeasi problema. Eu cred că problema a fost un CR vs CR+LF discrepanță. Am ascuns lucruri în viața mea .gitignore folosind CMD (pe Windows 7) și următoarea comandă:

Rău:

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

Etc.

Problema a fost că această comandă nu are loc corect end-of-line marker pentru Git să recunoască newline (fie CR sau CR+LF când Git se așteaptă ca cealaltă). Am rezolvat problema de manual înlocuind fiecare newline în Vim (Vim la salvare!) si a functionat perfect.

Bucurați-vă de .gitignore în Notepad++ sau Vim (în mod ideal). Chiar dacă fișierul se pare ca's formatat corect, încercați să înlocuiți liniile. Sună ciudat, știu, dar ea a lucrat pentru mine. :D

Comentarii (0)

OK, deci in cazul meu a acceptat soluția nu au de lucru, și ceea ce a lucrat este descris aici:

Este Visual Studio 2013 ignorat .gitignore de fișiere?

Pe scurt:

  • Aproape Visual Studio.
  • Navigați la .git folder
  • Delete ms-persist.xml
  • Restart Visual Studio
Comentarii (0)

Un singur lucru, de asemenea, să se uite la: Sunteți de economisire dumneavoastră .gitignore fișier cu linia corectă finaluri?

Windows:

Daca're folosind-o pe Windows, sunteți de economisire cu Windows capetele de linie? Nu toate programele vor face acest lucru în mod implicit; Notepad++ si multe editoare PHP implicit pentru Linux capetele de linie astfel încât fișierele vor fi server compatibil. O modalitate ușoară de a verifica acest lucru, este de a deschide fișierul în Windows Notepad. Daca tot apare pe o singură linie, apoi s-a salvat fișierul cu Linux capetele de linie.

Linux:

Dacă aveți probleme cu dosarul de lucru într-un mediu Linux, deschideți fișierul într-un editor cum ar fi Emacs sau nano. Dacă vedeți orice caractere non-printabile, apoi s-a salvat fișierul cu Windows capetele de linie.

Comentarii (0)

Doar elimina folder sau fișier, care a fost angajat anterior în Git, până la următoarea comandă. Apoi gitignore fișier va reflecta fișierele corecte.

    git rm -r -f "folder or files insides"
Comentarii (0)