Ich habe eine Shell-Variable, die auf das Verzeichnis verweist, in dem sich alle meine Konfigurationsdateien befinden. Nehmen wir an, die Variable wird mit export RC=$HOME/rc
erstellt. Ich habe eine globale Ignorierdatei im Konfigurationsverzeichnis: ~/rc/globalgitignore
.Shell-Variable-Erweiterung in git config
Meine Frage ist, wie kann ich die RC
Variable in meiner .gitconfig
Datei erweitern?
Ich habe bereits versucht, die folgenden:
excludesfile = $RC/globalgitignore
excludesfile = !$RC/globalgitignore
excludesfile = !echo $RC/globalgitignore
excludesfile = !$(echo $RC/globalgitignore)
Keine dieser Lösungen funktioniert.
Die einzige Möglichkeit funktioniert, wenn ich den vollständigen Pfad eingeben: excludesfile = ~/rc/globalgitignore
, aber dann muss ich den Pfad ändern, wenn mein rc
Verzeichnis an einen anderen Speicherort verschieben.
Zuvor habe ich alle Konfigurationsdateien aus dem 'rc'-Verzeichnis in mein Home-Verzeichnis verknüpft. Um diese Links wegzulassen, habe ich die Variable 'RC' erstellt und die meisten meiner Programme benutzen sie. Übrigens ist die '~' erweitert und wenn Sie Git Config Alias verwenden ... dann können Sie Shell-Kommandos und Variable erweitern verwenden. – SvenK
@SvenK: Bitte lesen Sie 'git-config (1)': Die Tatsache, dass 'git-config (1)' '' '' erweitert, bedeutet nicht automatisch, dass Variablen-Erweiterungen oder sogar Shell-Befehle unterstützt werden. '~' wird * genau dann von 'git-config' behandelt, wenn und nur wenn ein Wert * mit dem Spezifizierer '--path' abgerufen wird *. Dies ist die * einzige * Art der Erweiterung, die von 'git-config' unterstützt wird. Ich habe meine Antwort aktualisiert, um die relevanten Abschnitte von 'git-config (1)' – lunaryorn
einzuschließen Dies ist ein wenig frustrierend, da ich nicht nur meine http [s]? _ Proxy-Umgebungsvariable für mein ganzes System angeben kann; Ich muss es aus irgendeinem Grund auch in meiner gitconfig angeben. Ziemlich nervig für Leute, die nicht von zuhause oder einem kleinen Entwicklerladen arbeiten und/oder in verschiedenen Netzwerken sitzen, je nachdem, wo sie arbeiten. –