3 Punkte von GN⁺ 2024-11-26 | 1 Kommentare | Auf WhatsApp teilen

So richtet man seine Git-Identität ein

  • Einführung: Dieser Artikel erklärt, wie man über die Git-Konfiguration Identitäten passend zur eigenen Arbeitsumgebung verwaltet. Der Autor hat entdeckt, wie man mit includeIf Dateien abhängig von bestimmten Bedingungen einbindet.

  • Git-Konfiguration:

    • Mit includeIf kann man je nach bestimmtem Verzeichnis unterschiedliche Git-Konfigurationsdateien einbinden.
    • Zum Beispiel kann man festlegen, dass für Git-Verzeichnisse unter ~/code ~/.config/git/personal eingebunden wird und unter ~/work ~/.config/git/work.
    • Jede Datei enthält Informationen wie Benutzername, E-Mail-Adresse und Signaturschlüssel.
  • Konfiguration auf Basis der Remote-URL:

    • Mit hasconfig:remote.*.url kann man die Git-Konfiguration bedingt festlegen, wenn eine bestimmte Remote-URL vorhanden ist.
    • Zum Beispiel kann man für Verzeichnisse mit einem Remote wie github.com:orgname/** festlegen, dass ~/.config/git/config-gh-org verwendet wird.
  • SSH-Schlüssel einrichten:

    • Man sollte SSH-Schlüssel einrichten, damit pull und push zu Remotes möglich sind.
    • In der Datei ~/.ssh/config kann man Host und IdentityFile setzen, damit für jedes Remote der passende SSH-Schlüssel verwendet wird.
    • Wenn man für denselben Hostname unterschiedliche IdentityFile-Werte nutzen möchte, muss man unterschiedliche Host-Werte setzen.
  • SSH-Einstellungen in der Git-Konfiguration verwenden:

    • Wenn man für bestimmte Repositories andere SSH-Einstellungen verwenden möchte, kann man in der Git-Konfiguration mit insteadOf URLs ersetzen.
    • Zum Beispiel kann man statt github.com:orgname gh-work:orgname verwenden, damit die richtigen SSH-Einstellungen angewendet werden.
  • Zu beachten:

    • Dieser Ansatz könnte Probleme haben, und der Autor hätte gern Feedback dazu, ob es eine bessere Methode gibt.

Referenzmaterial

  • Es wurden verschiedene Blogbeiträge zum Verwalten mehrerer Git-Identitäten herangezogen.

1 Kommentare

 
GN⁺ 2024-11-26
Hacker-News-Kommentare
  • Es wird erklärt, wie man SSH- und Git-Identitäten mithilfe eines Namens wie gh-work trennt. Alle mit gh-work geklonten Git-Repositories folgen der Konfiguration von gh-work.inc und verwenden denselben Signaturschlüssel wie in der SSH-Konfiguration

  • Als jemand bei einem Startup arbeitete, gab es einen Kollegen, der seine Identität täglich in märchenhafte Namen änderte. Das half der Versionsverwaltungs-Forensik nicht, sollte aber vielleicht daran erinnern, dass man in die Identitätskonfiguration alles eintragen kann

  • Es wird vorgeschlagen, Aliasse für Identitäten in .gitconfig hinzuzufügen, sodass man nach dem Initialisieren oder Klonen eines Repositories die Befehle git config-company oder git config-personal ausführen kann

  • Es wird beschrieben, wie man Submodule einfach verwalten kann, indem man den SSH-Befehl in ~/.gitconfig festlegt, ohne ~/.ssh/config ändern zu müssen

  • Es wird vorgestellt, wie man Git-Konfigurationen pro Verzeichnis mit includeIf und hasconfig:remote verwaltet. Das ist auch beim Klonen von Repositories nützlich

  • Beratern wird dringend empfohlen, für die Arbeit ein separates Gerät oder zumindest einen separaten OS-Benutzer zu verwenden. Ein privates Gerät für die Arbeit zu nutzen, kann riskant sein

  • Es wird erklärt, wie man Git-Konfigurationen mit NixOS und home-manager verwaltet. Dabei wird die Bedingung hasconfig:remote verwendet, um eine bestimmte E-Mail-Adresse festzulegen

  • Es wird beschrieben, wie man die SSH-Komplexität in ~/.ssh belässt und separate Konfigurationen pro Kunde oder Projekt einbindet. Wenn es keinen Hostnamen wie GitHub gibt, wird ein Alias vergeben

  • Es wird erklärt, wie man mit gitdir Arbeit und private Projekte trennt. hasconfig:remote ist ein echter Gamechanger

  • Es wird beschrieben, wie man Arbeits- und private Repositories getrennt unter ~/dev und ~/src verwaltet. Je nach Pfad werden unterschiedliche Git-Konfigurationsdateien eingebunden

  • Es wird erklärt, wie man private und berufliche .gitconfig-Dateien einrichtet, um unterschiedliche E-Mail-Adressen und Signaturschlüssel zu verwenden. GPG-Signaturen werden aktiviert, um Commits zu signieren