1036 Stimmen

Wie kann ich verhindern, dass .gitignore in der Liste der nicht verfolgten Dateien angezeigt wird?

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

Dann habe ich eine .gitignore Datei.

Wenn ich jetzt tippe git status , .gitignore Datei erscheint in der Liste der nicht verfolgten Dateien. Warum ist das so?

2voto

John Brown Punkte 169

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

1voto

Michael Durrant Punkte 88734

.gitignore geht es um das Ignorieren andere Dateien. In Git geht es um Dateien, also geht es darum, Dateien zu ignorieren. Da Git jedoch mit Dateien arbeitet, muss diese Datei als Mechanismus zur Auflistung der anderen Dateinamen vorhanden sein.

Wenn es heißen würde .the_list_of_ignored_files könnte es ein wenig offensichtlicher sein.

Eine Analogie ist eine Liste von Aufgaben, die Sie NICHT erledigen wollen. Wenn Sie sie nicht irgendwo in einer Art "To-Do"-Liste aufführen, werden Sie sie nicht bemerken.

1voto

Ich habe festgestellt, dass es am besten ist, eine Ignorierfunktion für die lästigen .DS_Store Dateien befindet sich in der .git/info/exclude Datei.

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

1voto

Saša Punkte 3787

Ich denke, dass es Situationen gibt, in denen das Ignorieren der .gitignore sehr nützlich ist. Zum Beispiel, wenn Sie mehrere Teams oder ein großes Team haben, die an derselben Codebasis arbeiten. In diesem Fall braucht man bestimmte Konventionen. Eine dieser Konventionen betrifft das, was in der Git Repo ignoriert wird. Normalerweise geht es darum, Dateien und Verzeichnisse zu ignorieren, die von der IDE oder dem Betriebssystem erstellt wurden, einige generierte Protokolle usw.

Es gibt jedoch eine Kraft, die dazu neigt, unkonventionelle Änderungen an .gitignore Datei. Die .gitignore Datei kann durch eine unverantwortliche Person, aus Versehen, durch ein verwendetes Werkzeug oder in einem anderen Fall weiter verändert werden.

Um dem entgegenzuwirken, können wir wie folgt vorgehen:

  1. Die anfängliche .gitignore sollte die Konvention in dem/den Team(s) widerspiegeln,
  2. Nach der Veröffentlichung sollte die .gitignore-Datei durch Hinzufügen eines .gitignore-Eintrags gesichert werden und die Änderung erneut veröffentlicht werden. .gitignore Datei ist " versiegelt " auf diese Weise.

Die " versiegelt " .gitignore Datei geändert werden kann, nur lokal, ohne dass die Änderungen an andere Mitglieder des Teams weitergegeben werden. Wenn jedoch eine Änderung im gesamten Team auf breite Zustimmung stößt, ist es möglich, sie zu "entsiegeln", sie zu ändern und dann wieder zu "versiegeln". Das kann nicht aus Versehen geschehen, sondern nur absichtlich.

Leider kann man sich nicht zu 100 % vor Dummheit schützen, aber auf diese Weise hat man alles getan, was man tun kann, um zu verhindern, dass dumme Dinge passieren.

Wenn Sie ein relativ kleines Team mit sehr guten Fachleuten haben, ist das nicht so wichtig, aber selbst diese Leute würden es zu schätzen wissen, wenn sie sich um eine Sache weniger kümmern müssten.

Verwendung von .git/info/exclude ist cool, wenn man nichts an den Infrastruktureinstellungen ändern kann, sondern sich nur absichern muss, um keinen Fehler zu machen.

Aus der Sicht dessen, was richtig und was falsch ist, stimme ich für einen .gitignore-Eintrag in .gitignore Datei, die jedem die Freiheit gibt, lokal zu tun, was er will, aber nicht in andere eindringt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X