Wie setze ich mehrere "core.excludesfile" in ".gitconfig"?

12

Ich synchronisiere ~/.gitconfigund ~/.gitignoreDateien in Ubuntu und Mac mit Dropbox und habe einen Symlink dafür erstellt.

Und excludesfilewird so deklariert.

[core]
        editor = /usr/bin/vim
        excludesfile = /Users/username/.gitignore

Das Problem ist, dass sich das Home-Verzeichnis je nach Betriebssystem unterscheidet. Daher benötige ich mehrere Einstellungen für die Ausschlussdatei.

Ist es möglich, mehrere zu definieren core.excludesfile?

Eisensand
quelle

Antworten:

15

Sie können nur eine haben core.excludesfile; Die letzte Einstellung ist die, die verwendet wird. Sie benötigen jedoch nicht mehrere Dateien: git unterstützt ~als Abkürzung für Ihr Home-Verzeichnis.

[core]
    excludesfile = ~/.gitignore

Wenn Sie wirklich mehrere Ausschlussdateien benötigen, besteht die einfachste Lösung im Allgemeinen darin, eine einzelne Datei zu generieren, die die Verkettung der anderen darstellt, und sie zu aktualisieren, wenn sich eine der Dateien ändert.

Gilles 'SO - hör auf böse zu sein'
quelle
Mein .gitconfigist tatsächlich unter Versionskontrolle von Git. Leider wird git ~zum vollständigen Pfad erweitert $HOMEund aktualisiert sich .gitconfigselbst mit dem absoluten Pfad. Dieses Verhalten ist in Ordnung, wird dann aber als nicht bereitgestellte Änderung angezeigt, sodass ich git update-index --assume-unchanged .gitconfigdie Erweiterung (zusammen mit dem Rest der Datei) ignoriere.
Dolph
2
@Dolph status-norepro Was hast du getan, ~um eine Erweiterung zu bewirken ? Ich bekomme: git config --global core.excludesfile '~/.gitignore'; git config --global core.excludesfile~/.gitignore(git 1.7.9.5)
Gilles '
@ Delph Höchstwahrscheinlich war dies eine Shell-Erweiterung; Wenn Sie dies tun, git config --global core.excludesfile ~/.gitignorewird schließlich tatsächlich ausgeführt git config --global core.excludesfile /path/to/home/.gitignore.
Radon Rosborough
1
@ Gilles, beachten Sie auch, dass pro git-scm die Datei, ~/.config/git/ignorefalls vorhanden, global automatisch ignoriert wird, ohne dass eine globale Konfiguration erforderlich ist.
Acumenus