Frage Ignorieren Sie die .gitignore-Datei selbst


Ich habe gerade eine gemacht git init auf der Wurzel meines neuen Projekts.

Dann habe ich eine erstellt .gitignore Datei.

Jetzt, wenn ich tippe git status, .gitignore Die Datei erscheint in der Liste der nicht nachverfolgten Dateien. Warum das?


906
2018-04-20 06:42


Ursprung


Antworten:


Das .gitignore Datei sollte in Ihrem Repository sein, also sollte es in der Tat hinzugefügt und festgeschrieben werden, als git status schlägt vor. Es muss ein Teil des Repository-Baums sein, damit Änderungen daran zusammengeführt werden können und so weiter.

Also, fügen Sie es Ihrem Repository hinzu, es sollte nicht manipuliert werden.

Wenn Sie wirklich wollen, können Sie hinzufügen .gitignore zum .gitignore Datei, wenn Sie nicht möchten, dass es festgeschrieben wird. In diesem Fall ist es jedoch wahrscheinlich besser, die Ignoranten hinzuzufügen .git/info/exclude, eine spezielle checkout - lokale Datei, die genau wie .gitignore funktioniert, aber nicht in "git status" angezeigt wird, da sie in der .git Mappe.

Siehe auch https://help.github.com/articles/ignoring-files


866
2018-04-20 07:11



Wenn Sie die Liste der ignorierten Dateien außerhalb Ihrer Git-Struktur speichern möchten, können Sie die .git / info / ausschließen Datei. Es wird nur auf Ihre Kasse des Repos angewendet.


263
2018-04-20 07:14



Sie könnten tatsächlich eine Zeile ".gitignore" in Ihre ".gitignore" Datei einfügen. Dies würde dazu führen, dass die Datei ".gitignore" von git ignoriert wird. Ich denke nicht, dass das eine gute Idee ist. Ich denke, dass die Ignorierdatei versionsgesteuert sein und verfolgt werden sollte. Ich stelle das nur der Vollständigkeit halber dar.


69
2018-04-20 07:58



Sie können auch einen globalen Benutzer git haben .gitignore Datei, auf die automatisch angewendet wird alle Ihre Repos. Dies ist nützlich für IDE- und Editor-Dateien (z.B. swp und *~ Dateien für Vim). Ändern Sie die Verzeichnisspeicherorte für Ihr Betriebssystem

  1. Fügen Sie zu Ihrer hinzu ~/.gitconfig Datei

    [core]
    excludesfile = /home/username/.gitignore
    
  2. Ein ... kreieren ~/.gitignore Datei mit Dateimustern, die ignoriert werden sollen

  3. Speichern Sie Ihre Punktdateien in einem anderen Repo, so dass Sie ein Backup haben (optional).

Jedes Mal, wenn Sie ein Repo kopieren, initialisieren oder klonen, wird Ihre globale Gitignore-Datei ebenfalls verwendet.


47
2018-06-10 07:46



Nach dem Hinzufügen der .gitignore Datei und commit es, es wird nicht mehr in der Liste "untracked files" angezeigt.

git add .gitignore
git commit -m "add .gitignore file"
git status

38
2018-04-20 06:50



Wenn jemand bereits eine hinzugefügt hat .gitignore zu Ihrem Repo, aber Sie möchten einige Änderungen daran vornehmen und diese Änderungen ignorieren, tun Sie Folgendes:

git update-index --assume-unchanged .gitignore

Quelle.


36
2018-02-09 20:19



Nur wenn jemand anders den gleichen Schmerz hat wie wir. Wir wollten eine Datei ausschließen, die bereits festgeschrieben wurde.

Dieser Beitrag war viel nützlicher: Arbeiten mit .git / info / zu spät ausschließen

Insbesondere, was Sie brauchen, um eine Datei zu ignorieren, verwenden Sie eigentlich den Befehl git remove Sehen git rm (http://www.kernel.org/pub/software/scm/git/docs/git-rm.html)

Sie testen es, indem Sie gehen

git rm --dry-run *.log
(wenn Sie sagen, dass alle Protokolldateien ausgeschlossen werden sollen)

Dies wird was ausgeben wäre ausgeschlossen, wenn Sie es ausgeführt haben.

dann

Sie laufen es, indem Sie gehen

git rm *.log
(oder welcher Dateiname Pfad / Ausdruck Sie wollen)

Dann füge a hinzu *.log Linie zu Ihrem .gitignore Datei.


20
2017-09-25 03:00



Die Idee ist, Dateien, die spezifisch für Ihr Projekt sind, in die .gitignoreDatei und (wie bereits erwähnt) fügen Sie es dem Repository hinzu. Beispielsweise .pyc und .o Dateien, Protokolle, die die Testsuite erstellt, einige Fixtures usw.

Für Dateien, die Ihr eigenes Setup erstellt, die aber nicht unbedingt für jeden Benutzer angezeigt werden (wie z .swp Dateien, wenn Sie vim, versteckte ecplise-Verzeichnisse und ähnliches verwenden), sollten Sie verwenden .git/info/exclude (wie bereits erwähnt).


15
2018-04-20 07:55