2017-02-02 9 views
0

Ich versuche, git das Verzeichnis .chef und alles darunter zu ignorieren. Hier ist der Inhalt dessen, was zu viel des Guten in meinem .gitignore.gitignore ignoriert nicht die Dateien im Verzeichnis

/d/code/chef$ cat .gitignore 
.chef 
.chef/ 
.chef/* 
.chef/** 
/.chef 
/.chef/ 
/.chef/* 
/.chef/** 

Aber das funktioniert nicht:

/d/code/chef$ git status 
On branch master 
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: .chef/trusted_certs/chef_am_hexagonmetrology_com.crt 

Was mache ich falsch?

+0

Haben Sie die Dokumentation von [gitignore] (https://git-scm.com/docs/gitignore) gelesen? Der erste Abschnitt und der Notes-Abschnitt erklären, warum es nicht so funktioniert, wie Sie denken und wie Sie es beheben können. – axiac

Antwort

4

Sehen Sie, wie es "geändert" heißt? Weil es bereits begangen wurde. Das bedeutet, dass es bereits "verfolgt" wird. Sobald eine Datei verfolgt wurde, gilt der Gitignore nicht mehr. Um es loszuwerden, können Sie es löschen, das Löschen bestätigen und es wird nicht mehr angezeigt. mit git rm -rf --cached xxxxx

+1

Sie müssen keine Datei löschen, um git daran zu hindern, sie zu verfolgen (siehe meine Antwort unten). – wogsland

+0

@wogsland guter Punkt. Nach meiner Erfahrung war dies die üblichste Art, mit dem Problem umzugehen –

2

Sie wurden bereits die Verfolgung der .chef Verzeichnis und Dateien darin

Oder wie wogsland sagte, können Sie einfach die Datei (en) aus dem Index entfernen, bevor Sie es gitignored. Sie müssen aufhören, diese Dateien von

git rm -rf --cached .chef 

Tracking, die sie von Verfolgung entfernen, aber nicht sie aus dem .chef Verzeichnis entfernen. Vollständige Details finden Sie unter git rm documentation.

Verwandte Themen