2014-09-06 12 views
8
$ cat .gitignore 

# OSX 
*/.DS_Store 
.DS_Store 
.DS_Store? 
._* 
.Spotlight-V100 
.Trashes 
Icon? 
ehthumbs.db 
Thumbs.db 

$ git status 
On branch develop 
Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

    modified: Assets/Sprites/.DS_Store 

no changes added to commit (use "git add" and/or "git commit -a") 

Es gibt mehr unabhängige Dateien in .gitignore und Statusmeldung im Moment, aber .gitignore selbst nicht geändert wird, wird diese Version verpflichtet..DS_Store erscheint noch in git status trotz in .gitignore sein

Wie kann ich das beheben?

+0

mögliches Duplikat von [Git diff ignoriert angegebene Dateien in .gitignore nicht] (http://stackoverflow.com/questions/17820056/git-diff-doesnt-ignore-specified-files-in-gitignore) –

Antwort

8

Stellen Sie sicher, .DS_Store ist nicht im Cache:

git rm --cached -- Assets/Sprites/.DS_Store 
10

.DS_Store erscheint noch in git status trotz in .gitignore seine

Die .DS_Store Datei als eine geänderte Datei in der Ausgabe aufgeführt wird von git status, was bedeutet, dass es derzeit von Git verfolgt wird. Git ignoriert jedoch keine Datei, die gerade verfolgt wird, unabhängig davon, ob sie in Ihrer Datei .gitignore aufgeführt ist oder nicht.

Wie bist du in diese Situation geraten? Sie müssen versehentlich die .DS_Store Datei vor verfolgen und den Eintrag .DS_Store in Ihrem .gitignore hinzufügen.

.gitignore selbst ist nicht geändert, diese Version ist verpflichtet.

Die Liste der Dateien wird von keiner Version der .gitignore Datei bestimmt zu ignorieren, die Sie begangen haben, wie Sie zu glauben scheinen. Stattdessen verwendet Git zu jeder Zeit die Datei .gitignore, die sich in Ihrem Arbeitsbaum befindet (falls vorhanden).

Wie kann ich das beheben?

Sie müssen Git sagen, zu stoppen Tracking dass .DS_Store Datei, von

git rm --cached -- <path_to_the_.DS_Store-file> 

Wegen der --cached Flagge läuft, wird die problematische .DS_Store Datei nicht von Ihrem Arbeits Baum entfernt werden, aber es wird nicht in Ihren späteren Commits enthalten sein, und es sollte dann von da an richtig ignoriert werden.

+0

I tat es ohne '-', und stattdessen nur den Dateipfad 'git rm --cached./DS_Store' und es funktionierte immer noch. Was macht das '--'? – ahnbizcad

+0

@ahnbizcad Siehe http://stackoverflow.com/questions/22750028/in-git-what-does-dash-dash-mean?lq=1 – Jubobs

+0

'-' sorgt dafür, dass die Dinge reibungslos laufen ... (ZB wenn Ihre Datei Name beginnt mit einem '-' Zeichen) – ahnbizcad

Verwandte Themen