webentwicklung-frage-antwort-db.com.de

Ignorierte Dateien vom git-Status fernhalten

Ich möchte verhindern, dass Git ignorierte Dateien in git status anzeigt, da die Dokumentation und die Konfigurationsdateien in der Liste der Changed-Dateien, die jedoch nicht -Dateien enthalten, ohnehin unbenutzt sind.

Ist es normal, dass Git diese Dateien anzeigt? 

Ich lege die Ignorier-Informationen in eine .gitignore-Datei im Stammverzeichnis des Git-Repositorys. Diese werden bei der Verwendung von git add . nicht hinzugefügt. Es scheint jedoch, dass sie auch nicht vollständig ignoriert werden, da sie in der oben genannten Liste und nicht angezeigt werden) erscheint in der Liste, die mit git ls-files --others -i --exclude-standard gedruckt wurde. Dort werden nur Dateien angezeigt, die mit den Mustern in ~/.gitignore übereinstimmen.

Könnte es sein, dass ich sie zu einem früheren Zeitpunkt nicht ignoriert habe und sie mindestens einmal begangen wurden?

102
knuton

Wie ich in diesem Beitrag gefunden habe, funktioniert .gitignore nur für nicht protokollierte Dateien. Wenn Sie Dateien zum Repository hinzugefügt haben, können Sie:

git update-index --assume-unchanged <file>

oder entfernen Sie sie aus dem Repository durch

git rm --cached <file>

Bearbeiten

Dieser Artikel erklärt das auch

182
MBO

Dieses Problem war ebenfalls aufgetreten. Dies ist wahrscheinlich darauf zurückzuführen, dass Sie Ihr ignoriertes Verzeichnis/Dateien zu .gitignore hinzugefügt haben, nachdem sie von GIT in einem anfänglichen Commit-Ablauf als "für die Verfolgung" markiert wurden. 

Sie müssen also den git-Tracking-Cache wie folgt löschen:

git rm --cached -r [folder/file name]

Eine ausführlichere Erklärung finden Sie hier: http://www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html

Mit dem obigen Befehl wurden auch die Überreste des Ordners/der Dateien von Ihrer Remote-GIT-Origin entfernt. So werden Ihre GIT-Repos sauber.

12
newbreedofgeek

Problem kann sein, dass sich diese Datei noch im git-Cache befindet. Um dieses Problem zu lösen, müssen Sie den git-Cache zurücksetzen.

Git cache zurücksetzen Dadurch wird alles aus dem Index entfernt.

git rm -r --cached . 

Fügen Sie alle Dateien erneut hinzu:

git add . 

Verpflichten:

git commit -m ".gitignore was fixed." 
2
Ramis

Das funktioniert sicher,

git rm --cached -r [folder/file name]

1
Usman

Ich gehe davon aus, dass Sie kein tmp-Verzeichnis hinzufügen möchten (Visual Studio Platform).

1- Fügen Sie der lokalen .gitignore-Datei unten stehende Zeilen hinzu

## ignore tmp
/tmp/
./tmp/

3- Sichern und tmp-Ordner lokal löschen. (Backup woanders. ZB Desktop?)

4- Übernehmen Sie Änderungen an Local als Sync an Remote (z. B. github).

Nach diesen Schritten wird Ihr tmp-Verzeichnis nicht erneut hochgeladen.

1
Kursat Turkay

Von man git-lsfiles :

-i, --ignored
Show ignored files in the output. Note that this also reverses any exclude list present.

Ich persönlich neige dazu, doxygen-Dateien in meinem Quellbaum zu behalten, also habe ich dies einfach zu meinem .gitignore hinzugefügt (der sich im obersten Verzeichnis meines Quellbaums befindet):

docs/*

Hoffentlich hilft das.

0
BastiBen

so was 

git --ignored myfolder

Und zeigt nur den Status für myfolder

0
Alex

Die folgenden Schritte gelten für nicht protokollierte Dateien only ..__ Diese Informationen gelten für folgende Konfiguration:

Platform: linux

Git version: git version 1.8.3.1

Legen Sie die Liste der Dateien, die ignoriert werden sollen, in der "Ausschluss" -Datei am folgenden Speicherort an.

<path till .git directory>/.git/info/exclude

Anfangsinhalt der Datei "Ausschließen"

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

Endgültiger Inhalt der Datei "Ausschließen"

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~


*.tar
*.gch
0
harshul ar