So richte ich meine Git-Identität ein
(benji.dog)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
includeIfDateien abhängig von bestimmten Bedingungen einbindet. -
Git-Konfiguration:
- Mit
includeIfkann man je nach bestimmtem Verzeichnis unterschiedliche Git-Konfigurationsdateien einbinden. - Zum Beispiel kann man festlegen, dass für Git-Verzeichnisse unter
~/code~/.config/git/personaleingebunden wird und unter~/work~/.config/git/work. - Jede Datei enthält Informationen wie Benutzername, E-Mail-Adresse und Signaturschlüssel.
- Mit
-
Konfiguration auf Basis der Remote-URL:
- Mit
hasconfig:remote.*.urlkann 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-orgverwendet wird.
- Mit
-
SSH-Schlüssel einrichten:
- Man sollte SSH-Schlüssel einrichten, damit
pullundpushzu Remotes möglich sind. - In der Datei
~/.ssh/configkann manHostundIdentityFilesetzen, damit für jedes Remote der passende SSH-Schlüssel verwendet wird. - Wenn man für denselben
HostnameunterschiedlicheIdentityFile-Werte nutzen möchte, muss man unterschiedlicheHost-Werte setzen.
- Man sollte SSH-Schlüssel einrichten, damit
-
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
insteadOfURLs ersetzen. - Zum Beispiel kann man statt
github.com:orgnamegh-work:orgnameverwenden, damit die richtigen SSH-Einstellungen angewendet werden.
- Wenn man für bestimmte Repositories andere SSH-Einstellungen verwenden möchte, kann man in der Git-Konfiguration mit
-
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
Hacker-News-Kommentare
Es wird erklärt, wie man SSH- und Git-Identitäten mithilfe eines Namens wie
gh-worktrennt. Alle mitgh-workgeklonten Git-Repositories folgen der Konfiguration vongh-work.incund verwenden denselben Signaturschlüssel wie in der SSH-KonfigurationAls 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
.gitconfighinzuzufügen, sodass man nach dem Initialisieren oder Klonen eines Repositories die Befehlegit config-companyodergit config-personalausführen kannEs wird beschrieben, wie man Submodule einfach verwalten kann, indem man den SSH-Befehl in
~/.gitconfigfestlegt, ohne~/.ssh/configändern zu müssenEs wird vorgestellt, wie man Git-Konfigurationen pro Verzeichnis mit
includeIfundhasconfig:remoteverwaltet. Das ist auch beim Klonen von Repositories nützlichBeratern 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:remoteverwendet, um eine bestimmte E-Mail-Adresse festzulegenEs wird beschrieben, wie man die SSH-Komplexität in
~/.sshbelässt und separate Konfigurationen pro Kunde oder Projekt einbindet. Wenn es keinen Hostnamen wie GitHub gibt, wird ein Alias vergebenEs wird erklärt, wie man mit
gitdirArbeit und private Projekte trennt.hasconfig:remoteist ein echter GamechangerEs wird beschrieben, wie man Arbeits- und private Repositories getrennt unter
~/devund~/srcverwaltet. Je nach Pfad werden unterschiedliche Git-Konfigurationsdateien eingebundenEs 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