Warum .gitconfig [includeIf] funktioniert nicht?

Lesezeit: 1 Minute

Systemeinstellungen:
MacOS Catalina 10.15.6

> git --version
git version 2.24.3 (Apple Git-128)

Datei: ~/.gitconfig :

[user]
    name = nickname
    email = [email protected]
[includeIf "gitdir:~/Business"]
    path = ~/.gitconfig-work

Datei: ~/.gitconfig-work :

[user]
    name = First Last
    email = [email protected]

Ausgabe beim Versuch, die Konfiguration auf dem Terminal zu ĂĽberprĂĽfen:

(base) MBP-Name:~ myname$ cd ~/Business/
(base) MBP-Name:Business myname$ git config --get user.name
nickname

Ich habe beide relativ ausprobiert ~ und absolut / Pfade entweder fĂĽr gitdir Und path in der Konfigurationsdatei. Bei jeder Ă„nderung starte ich die Bash neu. AuĂźerdem habe ich mehrere andere Stackoverflow-Fragen ohne Erfolg gelesen. Einige von ihnen schlugen vor, das hinzuzufĂĽgen i Option fĂĽr GroĂź- und Kleinschreibung, aber das Problem wurde nicht behoben.

Irgendwelche Ideen ?

  • Ist ~/Business/ ein Repository (Arbeitsbaum)? Wenn kein Hinweis: includeIf funktioniert nur in Lagerstätten unter ~/Business/ aber nicht in einem Nicht-Repo-Verzeichnis.

    – promov

    15. November 2020 um 10:33 Uhr

  • @phd Du hattest vollkommen recht. Ich musste “` “gitdir:~/Business”“` in “` “gitdir:~/Business/”“` ändern und den Befehl in einem Repo-Ordner drĂĽcken“`. Danke <3

    – Entropiefieber

    15. November 2020 um 10:36 Uhr

  • @entropyfever Das ist hilfreich. Sie sollten es als Antwort hinzufĂĽgen … : D

    – Melvin Abraham

    8. Oktober 2022 um 14:54 Uhr

  • Ich habe ein paar Stunden gebraucht, um herauszufinden, warum es nicht funktioniert. Die ĂĽberschriebene Konfiguration ist nur sichtbar, wenn Sie sich in einem Git-Verzeichnis befinden, ansonsten werden immer die globalen Werte angezeigt.

    – Daniel B

    24. Februar um 4:23 Uhr

Ich habe versucht, die doppelten AnfĂĽhrungszeichen zu entfernen und es erneut einzugeben. komischerweise hat es funktioniert. da habe ich den text aus kopiert https://blog.gitguardian.com/8-easy-steps-to-set-up-multiple-git-accounts/

  • Das war das Problem fĂĽr mich, der Unterschied zwischen den nicht standardmäßigen AnfĂĽhrungszeichen (” “) und den Standard-AnfĂĽhrungszeichen (” “). Entfernen Sie die ausgefallenen AnfĂĽhrungszeichen und ihre Werke

    – MrInvolved

    26. Juli 2022 um 22:45 Uhr

  • Uuuuuuuuuuuug +1

    – Madbreaks

    6. August 2022 um 18:01 Uhr

Benutzeravatar von BerendPronk
Berend Pronk

Ich selbst hatte auch Probleme mit meiner .gitconfig. Ich habe die Dokumentation ein paar Mal gelesen, Stackoverflow und einige Blogposts durchsucht. Ich habe zwar jede mögliche Lösung dafür ausprobiert: relative Pfade, abschließende Schrägstriche, verschiedene Anführungszeichen usw. Keine der Lösungen, die ich ausprobiert habe, hat tatsächlich funktioniert.

Ich bin an den Punkt gekommen, an dem ich gerade versucht habe, eine Datei mit einzufĂĽgen [include]aber auch ohne Erfolg.

Nachdem ich einige Stunden versucht und nach Antworten gesucht hatte, stieß ich auf einen Beitrag, in dem a erwähnt wurde .gitconfig enthalten sein könnte auch a .txt Datei. Ich änderte die Dateien von .gitconfig-{company} Zu gitconfig-{company}.txt und die Pfade in der Datei global umbenannt .gitconfigund alles funktionierte sofort!

Ich hoffe, das funktioniert fĂĽr Sie und zukĂĽnftige Googler.

  • Ich denke der .gitconfig Datei muss auf enden .gitconfigwie .github.gitconfigwas ich benutze

    – mbomb007

    14. September 2022 um 18:59 Uhr


  • Der globale tut es. Aber immer wenn ich versuchte, eine Datei ĂĽber die [includeIf]musste ich hinzufĂĽgen .txt Erweiterung, damit es funktioniert. Ich habe lange gebraucht, um es herauszufinden, da jedes Beispiel sagte, dass es einfach so sein sollte .gitconfig-{company}. Vielleicht ist irgendwo eine Einstellung aktiviert, die dazu fĂĽhrt, dass mein System nur nach ĂĽberprĂĽft .txt. Vielleicht hat ja auch jemand damit zu kämpfen und findet das so .txt funktioniert auch bei denen 🙂

    – BerendPronk

    16. September 2022 um 7:05 Uhr

  • Hast du versucht .{company}.gitconfig?

    – mbomb007

    16. September 2022 um 13:12 Uhr

  • Könnte das versuchen. Danke fĂĽr den Einblick. Die Beispiele sagten, dass es keine Rolle spielte, aber es erscheint so logischer. Ich wollte euch nur wissen lassen, dass a .txt Datei reicht auch.

    – BerendPronk

    19. September 2022 um 7:10 Uhr

Dies wirkt sich nur auf zukünftige Projekte aus, die mit git init erstellt wurden. Bisherige Projekte bleiben unverändert

TL;DR

  1. Testen Sie dies unbedingt includeIf bevor Sie davon ausgehen, dass es einfach funktioniert (wie alles andere auch? 🤷‍♀️). Es scheint unter vielen Umständen nicht (sofort) zu funktionieren.
  2. Aus irgendeinem Grund, git nicht abholen die Änderung, bis ich benutze git config um eine zufällige Änderung vorzunehmen. (Hinweis: Ich bin auf win10)

Lange Version

Sehen Sie sich zunächst die anderen Antworten in diesem Beitrag an, da jeder Beitrag zu einem anderen potenziellen Problem beizutragen scheint.

Jetzt ist mir Folgendes passiert (HINWEIS: Ich verwende Windows 10):

  1. Offen ~/.gitconfig und fĂĽge den Eintrag hinzu includeIf Eintrag
    • z.B:
      [includeIf "gitdir:~/x/"]
      path = ~/.x.gitconfig
      
  2. Erstellen Sie die benutzerdefinierte ~/.x.gitconfig Datei und überschreiben einige Einstellungen, zB set a.b = c (Stellen Sie sicher, dass es sich von der Standardeinstellung unterscheidet, damit Sie es zuerst testen können.)
  3. HINWEIS: Diese Antwort behauptet, dass dies keine Auswirkungen auf alte Verzeichnisse hat, aber ich habe es nicht getestet.
  4. Gehen Sie in das Verzeichnis (cd ~/x) und testen. Ich habe zB versucht git config a.b und es gab mir den falschen Wert.
  5. Ich erkannte, dass der Ordner noch nicht war git inited, also rannte ich git initund es hat immer noch nicht funktioniert.
  6. Sln: Ich habe eine zufällige lokale Konfigurationsänderung über vorgenommen git config some thing
  7. Nochmals getestet und es funktionierte und nahm danach immer alle Ă„nderungen sofort auf. Es funktioniert jetzt!

Problem

In meinem Fall [includeIf] hat nicht funktioniert, weil meine config auf der ist C: Antrieb (C:\Users\User\.gitconfig), aber meine Arbeitsprojekte sind auf der D: Antrieb (D:\Projects\Work\).

Lösung

In meinem Fall mĂĽsste es heiĂźen:

[includeIf "gitdir/i:Work/"]

Anstatt:

[includeIf "gitdir/i:~/Work/"]

Dokumentation

Ich habe viel Zeit damit verbracht, das zu debuggen, aber jedes Mal hat es nicht funktioniert.

Also habe ich mich entschieden zu löschen und neu anzufangen. Folgendes habe ich getan:

Erstellen .gitconfig

[includeIf "gitdir:~/Documents/home/"]
path = ~/.gitconfig.home
[includeIf "gitdir:~/Documents/work/"]
path = ~/.gitconfig.work

Erstellen .gitconfig.work

[user]
name = My Name
email My work email

Erstellen .gitconfig.home

[user]
name = My Name
email My personal email

Dann habe ich git initialisiert (git init) in beiden Ordnern: ~/Documents/work/ Und ~/Documents/home/.

Nach der Initialisierung funktioniert alles wie erwartet.

Ich hoffe, es hilft Ihnen, falls Sie diese Probleme haben.

Getestet in Mac und Windows.

1445850cookie-checkWarum .gitconfig [includeIf] funktioniert nicht?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy