1002 Stimmen

Gitignore funktioniert nicht

Meine .gitignore-Datei funktioniert aus irgendeinem Grund nicht, und keine Menge Googeln konnte es beheben. Hier ist was ich habe:

*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log

Es ist im Verzeichnis master, das mein Git-Repository ist. Ich benutze Git 1.8.4.2, weil ich einen MacBook mit OSX 10.8.6 nutze.

2343voto

Ahmad Punkte 64242

Die Dateien/Ordner in Ihrer Versionskontrolle werden sich nicht einfach löschen, nur weil Sie sie zur .gitignore hinzugefügt haben. Sie befinden sich bereits im Repository und müssen entfernt werden. Sie können das einfach mit diesem Befehl erledigen:

Vergessen Sie nicht, alles zu bestätigen, was Sie geändert haben, bevor Sie dies tun!

git rm -rf --cached .
git add .

Dies entfernt alle Dateien aus dem Repository und fügt sie wieder hinzu (diesmal unter Beachtung der Regeln in Ihrer .gitignore).

405voto

Nicolas Punkte 4701

Um eine einzelne Datei zu enttracken, die bereits zum Repository hinzugefügt/initialisiert wurde, d.h. die Datei nicht mehr zu verfolgen, aber nicht vom System zu löschen, verwenden Sie: git rm --cached dateiname

Um jede Datei zu enttracken, die sich jetzt in Ihrem .gitignore befindet:

Committen Sie zuerst alle ausstehenden Code-Änderungen und führen Sie dann diesen Befehl aus:

git rm -r --cached .

Dies entfernt alle geänderten Dateien aus dem Index (Staging-Bereich), führen Sie dann einfach aus:

git add .

Committen Sie es:

git commit -m ".gitignore funktioniert jetzt"

123voto

sultanmyrza Punkte 2923

@Die Antwort von Ahmad funktioniert, aber wenn Sie nur eine bestimmte Datei oder wenige Dateien in Git ignorieren möchten, tun Sie, was Nicolas vorschlägt

Schritt 1

Fügen Sie den Dateinamen zur .gitignore-Datei hinzu

Schritt 2

Entfernen Sie den Dateinamen (Dateipfad) aus dem Git-Cache

git rm --cached Dateiname

Schritt 3

Änderungen übernehmen git add Dateiname

git commit -m "Datei zur .gitignore hinzufügen"

Es wird Ihre Git-Historie sauber halten, denn wenn Sie git rm -r --cached . durchführen und alles wieder hinzufügen und commiten, wird es Ihre Git-Historie verschmutzen (es wird zeigen, dass Sie viele Dateien auf einmal hinzufügen) Ich bin mir nicht sicher, ob ich meinen Gedanken richtig ausdrücke, aber ich hoffe, Sie verstehen den Punkt

69voto

Garrett Simpson Punkte 1203

Nachdem ich ein bisschen im Kaninchenbau versucht habe, den Antworten auf diese Frage zu folgen (vielleicht weil ich dies in einem Visual Studio-Projekt machen musste), fand ich den einfacheren Weg war:

  1. Das Entfernen der Datei(en), die ich nicht mehr verfolgen möchte, in einen temporären Speicherort kopieren und einfügen

  2. Das "Löschen" dieser Dateien bestätigen

  3. Die Änderung der .gitignore-Datei bestätigen, um die Dateien auszuschließen, die ich vorübergehend verschoben hatte

  4. Die Dateien wieder in den Ordner verschieben.

Ich fand dies den direktesten Weg (zumindest in einem Visual Studio, oder ich würde annehmen, in einer anderen auf einer IDE basierenden Umgebung wie Android Studio), ohne mich aus Versehen mit einem ziemlich allgegenwärtigen git rm -rf --cached . ins Knie zu schießen, wonach das Visual Studio-Projekt, an dem ich gearbeitet habe, nicht mehr geladen wurde.

31voto

Im cmd-Fenster verwenden Sie den folgenden Git-Befehl:

git rm --cached dateiname

Erklärung:

git-rm - Entfernt Dateien aus dem Arbeitsverzeichnis und aus dem Index

--cached Verwenden Sie diese Option, um Pfade nur aus dem Index zu entfernen. Arbeitsverzeichnisdateien, ob geändert oder nicht, bleiben unberührt.

--aus https://git-scm.com/docs/git-rm

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X