
Ich kann nicht herausfinden, was mir fehlt, wenn ich versuche, den Team Explorer von Visual Studio 2019 daran zu hindern, Dateien auf GitHub zu kopieren, wenn sie in der Datei .gitignore aufgelistet sind.
Meine .gitignore-Datei befindet sich im selben Verzeichnis wie das .git-Verzeichnis. Insgesamt ist sie:
# Binaries
/x64/
# VS log files
*.log
*.tlog
# Visual Studio files and folder
/.vs/
Wenn ich Änderungen festschreiben möchte, zeigt VS Folgendes an:
Ich tuenichtSie möchten weder Tetris_Game.exe noch irgendwelche .tlog- oder .log-Dateien oder irgendetwas aus dem .vs-Ordner festschreiben. Wie Sie jedoch sehen, sind diese Dateien und Verzeichnisse für die Festschreibung aufgelistet.
Was übersehe ich, was doch ganz offensichtlich sein müsste?
Antwort1
Dies liegt daran, dass alle diese Dateien mit den Erweiterungen .exe, .tlog und .log auch in Ihrem Git-Repository vorhanden wären. Jede Änderung an diesen Dateien wird also mit Sicherheit verfolgt.
Damit .gitignore wie erwartet funktioniert, führen Sie die folgenden Schritte aus:
- Löschen Sie alle Dateien, die Sie lokal ignorieren möchten.
- Dann committen und pushen. Jetzt sind Ihr Repository und Ihre .gitignore-Datei in einem konsistenten Zustand.
- Starten Sie VS neu und führen Sie einen Pull durch.
- Erstellen Sie Ihre Lösung/Ihr Projekt.
Beobachten Sie jetzt Ihr Git-Änderungsfenster. Diese Dateien sollten nicht aufgelistet werden, obwohl sie auf Ihrem lokalen Computer generiert wurden.
Antwort2
Der führende Schrägstrich in /.vs/
und /x64/
bedeutet, dass es sich um absolute Pfade vom Stamm des Dateisystems handelt.
Bei einem Windows-PC, bei dem das Repo an einen beliebigen Ort auf dem Laufwerk C: gezogen wurde, würde Ihre .gitignore-Datei die Dateien in C:\.vs\
und ignorieren C:\x64\
.
Entfernen Sie den führenden Schrägstrich und lassen Sie sie einfach als .vs/
und stehen x64/
.
Dann werden sie als Pfade interpretiert, die relativ zur .gitignore-Datei sind.