Ich habe eine .gitignore
Datei und sie ignoriert einige Dateien. Ich habe die .gitignore
Datei aktualisiert (einige Dateinamen entfernt und einige Dateinamen hinzugefügt). Dies spiegelt sich nicht in wider git status
. Wie kann ich git zwingen, diese Änderungen zu aktualisieren, damit Dateien verfolgt werden, die zuvor nicht verfolgt wurden, und umgekehrt?
Ich habe diese Frage ausprobiert , dennoch werden nicht alle meine Dateien nachverfolgt (gemäß meiner aktualisierten .gitignore
). (Wie kann ich git zwingen, Dateien zurückzuziehen, sobald sie .gitignore
aktualisiert oder gelöscht wurden?)
git rm
zuerst die Dateien bearbeiten, bevor Sie sie hinzufügen können.gitignore
.Antworten:
Wenn Sie alle Dateien hinzufügen möchten, löschen Sie alle Dateinamen aus der
.gitignore
Datei, nicht die.gitignore
Datei undcommit
diese, und versuchen Sie es danngit config --global core.excludesfile ~/.gitignore_global
Einige Dateien werden vom Git je nach Betriebssystem ignoriert (wie DLL in Windows). Weitere Informationen .
Jetzt
Oder
Sie können einen einfachen Hack versuchen, es kann funktionieren oder nicht. Löschen Sie alle Dateinamen aus der
.gitignore
Datei und fügen Sie diese Zeile hinzu!*.*
, dannadd
undcommit
.AKTUALISIEREN
Einfach, ich erkläre es mit einem Beispiel. Angenommen, Sie haben einen
build
Ordner, der bereits von git hinzugefügt und verfolgt wird. Jetzt entscheiden Sie sich, diesen Ordner nicht zu verfolgen.build
) hinzu.gitignore
build
Ordner löschenVon nun an verfolgt git den
build
Ordner nicht mehr.quelle
Sie müssen zuerst den vorhandenen Git löschen
cache
.Entfernen Sie den Cache aller Dateien
git rm -r --cached .
Entfernen Sie den Cache einer bestimmten Datei
git rm -r --cached <file_name.ext>
Wenn Sie den vorhandenen Cache geleert haben, fügen Sie / stage file / files im aktuellen Verzeichnis hinzu und schreiben Sie fest
git add .
// Um alle Dateien hinzuzufügengit add <file_name.ext>
// Um eine bestimmte Datei hinzuzufügengit commit -m "Suitable Message"
Wie Scott Biggs in seinem Kommentar betonte: "Dies funktioniert sowohl beim Hinzufügen einer Datei, die einmal ignoriert wurde, als auch beim Ignorieren einer Datei, die einmal verfolgt wurde."
quelle
git status
Track -.gitignore
Datei?git rm --cached
..gitignore
vom lokalen PC, noEs klappt
// Übernehmen Sie zuerst alle ausstehenden Codeänderungen und führen Sie dann diesen Befehl aus:
// Dies entfernt alle geänderten Dateien aus dem Index (Staging-Bereich) und führt dann einfach Folgendes aus:
//Verpflichten
quelle
Sie können dieses Problem beheben, indem Sie den Cache der spezifischen Dateien löschen, in denen dieses Problem auftritt. Das von Ihnen erwähnte Problem tritt auf, wenn Sie einige bestimmte Dateien einmal festgeschrieben haben und sie später in .gitignore hinzufügen .
Die gleiche Lösung wird von @ sharvan40 oben vorgeschlagen, aber Sie müssen den Cache nicht für alle Dateien entfernen. Es wird ein neues Commit für alle Ihre Dateien erstellt.
quelle
Angenommen, Ihr aktuelles Arbeitsverzeichnis ist leer.
Mit können Sie überprüfen, welche Dateien git derzeit verfolgt
git ls-files
. Wenn Sie viele Dateien haben, können Siegit ls-files | grep hello.txt
feststellen, ob git diese bestimmte Datei verfolgt.Wenn es verfolgt wird, verwenden Sie, um es
git rm hello.txt
zu entfernen (wie Tim in seinem Kommentar erwähnt hat ). Übernehmen Sie diesen nicht verfolgten Status möglicherweise zuerst und fügen Sie ihn dann bei.gitignore
Ihrem nächsten Commit zu Ihrem hinzu . Ich habe in der Vergangenheit ein funky Verhalten gesehen, als ich versucht habe, dasselbe Commit zu ignorieren und zu entfernen.quelle