Sollten Sie .gitignore in die Git-Repos einbinden?

497

Halten Sie es für eine gute Praxis, .gitignore in ein Git-Repo zu übernehmen?

Einige Leute mögen es nicht, aber ich denke, es ist gut, da Sie den Verlauf der Datei verfolgen können. Ist es nicht?

Howard
quelle
38
Wenn nicht, setzen Sie .gitignore in .gitignore ...
CharlesB
Mögliches Duplikat von Ignorieren Sie die .gitignore-Datei selbst
Michael Freidgeim

Antworten:

489

Normalerweise ist ja .gitignorenützlich für alle, die mit dem Repository arbeiten möchten. Gelegentlich möchten Sie mehr private Dinge ignorieren (vielleicht erstellen Sie oft LOGoder so etwas. In diesen Fällen möchten Sie das wahrscheinlich niemandem aufzwingen.

Bruce Stephens
quelle
137
+1 Die "privaten Dinge" können in den $GIT_DIR/info/excludeoder ~/.gitconfigDateien entsprechend erwähnt werden.
WReach
5
Wenn Sie bereits eine Datei eingecheckt haben und diese ignorieren möchten, ignoriert Git die Datei nicht, wenn Sie später eine Regel hinzufügen. In diesen Fällen müssen Sie zuerst die Datei entfernen, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:git rm --cached FILENAME
eli-bd
133

Sie in der Regel tun , begehen .gitignore. Tatsächlich gehe ich persönlich so weit, sicherzustellen, dass mein Index immer sauber ist, wenn ich nicht an etwas arbeite. ( git statussollte nichts zeigen.)

Es gibt Fälle, in denen Sie Dinge ignorieren möchten, die wirklich nicht projektspezifisch sind. Beispielsweise kann Ihr Texteditor automatische *~Sicherungsdateien erstellen, oder ein anderes Beispiel sind die .DS_Storevon OS X erstellten Dateien.

Ich würde sagen, wenn andere sich über diese Regeln beschweren, die Ihre durcheinander bringen .gitignore, lassen Sie sie weg und fügen Sie sie stattdessen in eine globale Ausschlussdatei ein.

Standardmäßig befindet sich diese Datei in $XDG_CONFIG_HOME/git/ignore(standardmäßig ~/.config/git/ignore), aber dieser Speicherort kann durch Festlegen der core.excludesfileOption geändert werden . Zum Beispiel:

git config --global core.excludesfile ~/.gitignore

Erstellen und bearbeiten Sie einfach die globale Ausschlussdatei nach Herzenslust. Es gilt für jedes Git-Repository, an dem Sie auf diesem Computer arbeiten.

Stéphan Kochen
quelle
14
Sie können # some commentder .gitignoreDatei jederzeit Zeilen hinzufügen , um zu erklären, warum Sie etwas ignorieren. Jede Zeile zu kommentieren ist ein bisschen übertrieben, aber ich habe haben Abschnitte mit der Bezeichnung # IDE (Eclipse), # OS (Mac OS X)und # Generated (Perl). Auf diese Weise kann jemand, der ein anderes Betriebssystem oder eine andere IDE verwenden möchte, einen Abschnitt hinzufügen und wir können alle gemeinsam nutzen.
Stuart R. Jefferys
9
Daumen hoch für "Ich persönlich gehe so weit, sicherzustellen, dass mein Index immer sauber ist, wenn ich nicht an etwas arbeite. (Git-Status sollte nichts
anzeigen
4
Nb. mit modernen Git der Standardwert für core.excludesfileheißt ~/.config/git/ignore, in Übereinstimmung mit XDG Basisverzeichnis Specification
Jakub Narębski
1
+1 für global .gitignore- Sehr nützlich, wenn Personen, mit denen Sie zusammenarbeiten, sich nicht über den Inhalt von Push- .gitignoreDateien einig sind oder darüber, ob sie gepusht werden sollen, und wir alle eine Vielzahl unterschiedlicher Entwicklungsumgebungen verwenden, die unterschiedliche Arten von Rauschen erzeugen.
Krease
1
davidwalsh.name/global-gitignore einige weitere Informationen über das globale Ignorieren
Frode Akselsen
11

Ich habe commit .gitignore eingefügt. Dies ist eine Höflichkeit für andere, die mein Projekt erstellen, dass die folgenden Dateien abgeleitet werden und ignoriert werden sollten.

Normalerweise mache ich einen Hybrid. Ich möchte, dass Makefile die .gitignore-Datei generiert, da das Makefile alle Dateien kennt, die mit dem Projekt verknüpft sind - abgeleitet oder auf andere Weise. Lassen Sie dann ein Projekt .gitignore der obersten Ebene einchecken, das die vom Makefile für die verschiedenen Unterverzeichnisse erstellten generierten .gitignore-Dateien ignoriert.

In meinem Projekt habe ich möglicherweise ein bin-Unterverzeichnis mit allen erstellten ausführbaren Dateien. Dann lasse ich mein Makefile einen .gitignore für dieses bin-Verzeichnis generieren. Und im obersten Verzeichnis .gitignore, das bin / .gitignore auflistet. Das oberste ist das, in das ich einchecke.

Bitdiot
quelle
0

Das Festschreiben von .gitignore kann sehr nützlich sein, aber Sie möchten sicherstellen, dass Sie es danach nicht zu stark ändern, insbesondere wenn Sie regelmäßig zwischen Zweigen wechseln. In diesem Fall kann es vorkommen, dass Dateien in einem Zweig und nicht in einem anderen Zweig ignoriert werden und Sie gezwungen sind, Dateien in Ihrem Arbeitsverzeichnis manuell zu löschen oder umzubenennen, da ein Auschecken fehlgeschlagen ist, da eine nicht verfolgte Datei überschrieben wird.

Deshalb ja, verpflichten Sie Ihren .gitignore, aber nicht bevor Sie sich ziemlich sicher sind, dass sich danach nichts mehr ändert.

user3464496
quelle
-6

Es wird empfohlen, .gitignore zumindest Ihre Build-Produkte (Programme, * .o usw.) zu erstellen.

Jakub Narębski
quelle
11
Das hat die Frage nicht beantwortet: sollte .gitignore selbst " .gitignored" sein?
Charles Wood
6
Achten Sie darauf, dass nicht die Frage war, und dies tut Antwort , was gefragt wurde: „ist [es] eine gute Praxis .gitignore in eine Git - Repo zu begehen?“.
Papercowboy
5
@ Cayuu Ich glaube, die Antwort sagt "Es ist eine gute Praxis, .gitignore" xyz, ich sehe nicht, wie es die Frage beantwortet. Die Frage ist, ob .gitignore versioniert werden soll oder nicht.
Nightograph