Im Stammverzeichnis meines Projekts habe ich einen foo
Ordner. Innerhalb des foo
Ordners habe ich einen bar
Ordner. Ich möchte alle Änderungen an allen Dateien in meinem bar
Ordner ignorieren . Ich habe dies in meinem gitignore
:
/foo/bar
Der Ordner wird überprüft: Er ist vorhanden und enthält die zu ignorierenden Dateien. gitignore
ist commit
ted. Ich habe jedoch eine Datei, in der ich eine Änderung vornehme und die sich in meinem bar
Ordner befindet. Wenn ich tippe
git status
In meinem git bash
sehe ich die Datei, die hätte ignoriert werden sollen. Was könnte der Grund sein und wie kann ich alle Dateien in meinem Balkenordner erfolgreich ignorieren?
Beachten Sie, dass die Dateien zuvor mit derselben Zeile ignoriert wurden, ich diese Zeile jedoch vorübergehend zu commit
etwas auf dem Server entfernen musste . Nach dem habe commit
ich die Leitung wieder in die gitignore
. Dies war vor einer Weile, aber jetzt habe ich beobachtet, dass die Dateien in sein werden git status
. Ich würde erwarten, die ignorierten Dateien ändern zu können, ohne dass sie in der erscheinen git status
.
git add -f ignored-file
fügt eine Datei hinzu, auch wenn sie ignoriert wird.git status foo/bar/file-that-should-be-ignored
es?git log foo/bar/file-that-should-be-ignored
. Wenn es nicht Teil des Repositorys sein sollte, sollten Sie es mit entfernengit rm --cached foo/bar/file-that-should-be-ignored
und dann festschreiben, wie von Reck unten vorgeschlagen (obwohl ich es nur für die Datei tun würde, nicht für den gesamten Ordner). Dies wird (a) die Datei von Git entfernen, (b) die Datei in Ihrer lokalen Kopie behalten und (c) die Datei löschen, wenn anderefetch
oderpull
das neue Commit.Antworten:
Ich vermute, dieser Ordner wurde schon einmal in Git eingecheckt?
Führen Sie aus
git rm -r --cached <folder>
und überprüfen Sie erneut.quelle
git update-index --assume-unchanged <folder>
vielleicht?Für mich war die akzeptierte Antwort Teil der Lösung, nicht die gesamte Lösung. Vielleicht waren die anderen Schritte, die ich veröffentlichen werde, offensichtlich, aber ich habe sie zuerst verpasst. Hier sind die Schritte, die ich unternommen habe, um sicherzustellen, dass meine
.gitignore
Datei den Ordner ignoriert, den sie ignorieren soll:git rm -r --cached .
(der alles aus dem Git-Index entfernt, um Ihr Git-Repository zu aktualisieren)git add .
(um alles wieder zum Repo hinzuzufügen)git commit -m ".gitignore Fixed"
Den Link zu dem Artikel, in dem ich die Lösung gefunden habe, finden Sie hier .
quelle
Ich hatte dieses Problem und stellte fest, dass git die Dateien / Ordner tatsächlich korrekt ignorierte, aber mein Code-Editor (Visual Studio Code) war nur fehlerhaft und hat sie in der Seitenleiste der Benutzeroberfläche nicht richtig "ausgegraut". Ich habe VSCode neu gestartet und sie wurden wie erwartet ausgegraut.
quelle
Als Ergänzung zur akzeptierten Antwort
Wenn ich das mache, zeigt das Terminal eine Reihe von
rm
for-Dateien in diesem Verzeichnis. Um ein weiteres Commit zu verhindern, das sich möglicherweise unnötig auf Remote auswirkt, habe ich Folgendes getan:Danach sagte es nichts zu festschreiben und wenn ich Dateien darin ändere
/foo/bar/
und mache,git status
bekomme ich immer nochnothing to commit
.quelle