Globales gitignore ...
Wenn man Dateien aus der Versionskontrolle mit git ausschliessen möchte, kann man im Repository eine Datei
Anders ist es, wenn man Backupdateien des Editors ausschliessen möchte. Da in der Regel mehrere Menschen an einem Projekt arbeiten und vielleicht sogar jeder einen anderen Editor benutzt, ist es sinnvoller, dass jeder die Dateien ausschliesst, die seinem Editor entsprechen.
Dazu kann mit dem folgenden Kommando die globale Variable
Bei mir enthält sie derzeit nur:
Das sind die Backupdateien von vim.
.gitignore
anlegen. Das ist sinnvoll, wenn es Dateien gibt, die in nur einem Repository ausgeschlossen werden sollen.Anders ist es, wenn man Backupdateien des Editors ausschliessen möchte. Da in der Regel mehrere Menschen an einem Projekt arbeiten und vielleicht sogar jeder einen anderen Editor benutzt, ist es sinnvoller, dass jeder die Dateien ausschliesst, die seinem Editor entsprechen.
Dazu kann mit dem folgenden Kommando die globale Variable
core.excludesfile
gesetzt werden, die einen Dateinamen beinhaltet, in der die globalen Ausschlusskriterien zu finden sind.git config --global core.excludesfile ~/.gitignore_global
Bei mir enthält sie derzeit nur:
*~
Das sind die Backupdateien von vim.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Florian Bruhin am :
let &backupdir=vimfiles . "/bak"
let &dir=vimfiles . "/tmp"
Florian Bruhin am :
foo & bar
Dirk Deimeke am :
Danke für das Bescheid sagen!
Dirk Deimeke am :
In anderen Editoren lässt es sich vielleicht nicht so einfach konfigurieren.
Patrick Koetter am :
Wenn ich es global setze, gebe ich die Kontrolle an die einzelnen Teammitglieder ab. Ich muss darauf vertrauen, dass sie sich an die Konvention halten.
Das kann fallweise schwierige sein…
Dirk Deimeke am :
Ein LaTeX-Projekt beispielsweise wird eine ignore-Datei im Repository haben, die alle temporären LaTeX-Dateien ausschliesst. Die könnten aber in einem anderen Kontext bedeutsam und keine temporär-Dateien sein.
Die globale Datei trägt eher dem Rechnung, dass jeder unterschiedliche Tools benutzt, um seine Arbeit zu tun. Bei dem Einen enden Backup-Dateien auf ~, bei dem Anderen auf .bak.
Es ist ja kein "entweder / oder".
Daniel am :
Dirk Deimeke am :
Für mich ist es so, dass ich den Editor in allen Projekten benutze, daher ist die globale Datei für mich der richtige Ort.
Denny am :
Die gitignore von Github ist ein wenig länger
Vim.gitignore
Ich bin noch unentschlossen welcher Weg besser ist. Auf der einen Seite gebe ich die Kontrolle ab aber auf der anderen Seite erhalte ich eine .gitignore Datei die wirklich nur die Projekt relevanten Dinge enthält (z.B docker macht das so).
Dirk Deimeke am :
Es gibt eine Reihe an Empfehlungen in "best practises" und in grosser Übereinstimmung beschreiben sie das, was Du schreibst:
Projekt relevante Dinge, die alle betreffen in die .gitignore des Repositories (oft auch mit dem Hinweis, dass generierte Dateien nicht unter Versionskontrolle stehen sollen, wobei man da geteilter Meinung sein kann).
Projekt relevante Dinge, die nur mich betreffen (weil ich nur in dem Projekt eine bestimmte IDE verwende): .git/info/exclude
Projekt übegreifende Dinge, die nur mich betreffen, in das im Blogartikel beschriebene core.excludesfile.
Frakturfreund am :
mv ~/.gitconfig ~/.config/git/config
echo '*~' > ~/.config/git/ignore # bzw. mv ~/.gitignore_global ~/.config/git/ignore
touch ~/.config/git/attributes
So kann man sich den expliziten Eintrag in der config sparen (Konvention vor Konfiguration), bekommt trotzdem eine (Benutzer-)globale ignore-Datei und das Homeverzeichnis wird etwas ordentlicher .
Der touch-Befehl ist natürlich erst mal überflüssig, aber eine globale attribute-Datei hat für den ein- oder anderen vielleicht auch seine Reize .
Dirk Deimeke am :
Vielen Dank.