info - linux gitignore




Ignorieren Sie die.gitignore-Datei selbst (13)

Ich habe gerade einen git init auf die Wurzel meines neuen Projekts gemacht.

Dann habe ich eine .gitignore Datei erstellt.

Wenn ich nun git status eingib , erscheint die Datei .gitignore in der Liste der nicht geordneten Dateien. Warum das?


Achten Sie auf das folgende "Problem" Manchmal möchten Sie Verzeichnisse, aber keine Dateien in diesen Verzeichnissen hinzufügen. Die einfache Lösung besteht darin, ein .gitignore mit dem folgenden Inhalt zu erstellen:

*

Dies funktioniert gut, bis Sie feststellen, dass das Verzeichnis nicht hinzugefügt wurde (wie erwartet zu Ihrem Repository. Der Grund dafür ist, dass der .gitignore auch ignoriert wird, und dadurch das Verzeichnis leer ist. Daher sollten Sie so etwas tun :

*
!.gitignore

Die .gitignore Datei sollte sich in Ihrem Repository befinden, daher sollte sie in der Tat hinzugefügt und festgeschrieben werden, wie der git status vermuten lässt. 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 möchten, können Sie .gitignore zur Datei .gitignore .gitignore , wenn Sie nicht möchten, dass es festgeschrieben wird. In diesem Fall ist es jedoch wahrscheinlich besser, die Ignoren zu .git/info/exclude hinzuzufügen, einer speziellen lokalen Checkout-Datei, die genau wie .gitignore funktioniert, aber nicht in "git status" angezeigt wird, da sie sich im .git Ordner befindet.

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


Dies scheint nur für Ihr aktuelles Verzeichnis zu funktionieren, damit Git alle Dateien aus dem Repository ignoriert.

Aktualisieren Sie diese Datei

.git/info/exclude 

mit deiner Wildcard oder deinem Dateinamen

*pyc
*swp
*~

Es ist durchaus möglich, dass ein Endbenutzer möchte, dass Git die Datei ".gitignore" ignoriert, weil die von Eclipse erstellten IDE-spezifischen Ordner wahrscheinlich nicht mit NetBeans oder einer anderen IDE identisch sind. Um den Quellcode IDE antagonistisch zu halten, macht es das Leben einfach, ein benutzerdefiniertes Git zu ignorieren, das nicht mit dem gesamten Team geteilt wird, da einzelne Entwickler andere IDEs verwenden könnten.


Ich fand, dass der beste Ort, um die lästigen .DS_Store Dateien zu ignorieren, in der .DS_Store .git/info/exclude Datei ist.

IntelliJ scheint dies automatisch zu tun, wenn Sie ein Git-Repository darin einrichten.


In meinem Fall möchte ich eine bestehende Datei ausschließen. Nur das Ändern von .gitignore funktioniert nicht. Ich folge diesen Schritten:

git rm --cached dirToFile/file.php
vim .gitignore
git commit -a

Auf diese Weise säuberte ich die Datei, die ich ausschließen wollte, aus dem Cache und fügte sie zu .gitignore hinzu .


Natürlich wird die .gitignore-Datei über den Status angezeigt, weil sie nicht verfolgt wird, und git sieht es als eine leckere neue Datei zum Essen!

Da .gitignore eine nicht aufgezeichnete Datei ist, ist es ein Kandidat, der von Git ignoriert wird, wenn Sie ihn in .gitignore einfügen.

Also, die Antwort ist einfach: Einfach die Zeile hinzufügen:

.gitignore # Ignore the hand that feeds!

zu Ihrer .gitignore-Datei!

Und entgegen der Antwort von August sollte ich sagen, dass die .gitigore-Datei nicht in Ihrem Repository sein sollte. Es passiert einfach, dass es sein kann , was oft bequem ist. Und es ist wahrscheinlich wahr, dass dies der Grund ist, dass .gitignore als Alternative zu .git / info / exclude erstellt wurde, die nicht vom Repository verfolgt werden kann. Wie Sie Ihre .gitigore-Datei verwenden, liegt ganz bei Ihnen.

Als Referenz sehen Sie sich die Hilfeseite gitignore (5) auf kernel.org an.


Navigiere zum Basisverzeichnis deines Git Repos und führe den folgenden Befehl aus:

echo '\\.*' >> .gitignore

Alle Dot-Dateien werden ignoriert, einschließlich des lästigen .DS_Store, wenn Sie sich auf einem Mac befinden.


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

  1. Fügen Sie Ihre ~/.gitconfig Datei hinzu

    [core]
    excludesfile = /home/username/.gitignore
    
  2. Erstellen Sie eine ~/.gitignore Datei mit ~/.gitignore , 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.


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.


Wenn Sie bereits .gitignore eingecheckt haben und Änderungen daran ignorieren möchten, lesen Sie diese Antwort :

Verwenden Sie diesen Befehl:

git update-index --assume-unchanged FILENAME_TO_IGNORE

Um es rückgängig zu machen (falls Sie Änderungen daran vornehmen wollen), benutzen Sie:

git update-index --no-assume-unchanged

UPDATE :

Gehen Sie wie folgt vor , um "unveränderte" Dateien unter dem aktuellen Verzeichnis aufzulisten:

git ls-files -v | grep -E "^[a-z]"

Da die Option -v Kleinbuchstaben für 'unverändert übernommene' Dateien verwendet.


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


.gitignore ignoriert andere Dateien. git geht es um Dateien, also geht es darum, Dateien zu ignorieren. Da git jedoch Dateien bearbeitet, muss diese Datei als Mechanismus zum Auflisten der anderen Dateinamen vorhanden sein.

Wenn es .the_list_of_ignored_files genannt .the_list_of_ignored_files , könnte es etwas offensichtlicher sein.

Eine Analogie ist eine Liste von Aufgaben, die Sie NICHT machen möchten. Wenn Sie sie nicht irgendwo auflisten, ist eine Art "To-Do" -Liste, die Sie nicht kennen.





gitignore