.gitconfig
wird normalerweise im user.home
Verzeichnis gespeichert .
Ich verwende eine andere Identität, um an Projekten für Unternehmen A und etwas anderes für Unternehmen B zu arbeiten (hauptsächlich den Namen / die E-Mail-Adresse). Wie kann ich zwei verschiedene Git-Konfigurationen haben, damit meine Check-Ins nicht mit dem Namen / der E-Mail-Adresse übereinstimmen?
git
git-config
Priya
quelle
quelle
[user] email = ...
Blocks, das globale überschreiben~/.gitconfig
- und dies ist nur für Ihren Benutzer?Es gibt 3 Ebenen der Git-Konfiguration. Projekt, global und System.
Erstellen Sie eine projektspezifische Konfiguration. Sie müssen diese im Projektverzeichnis ausführen:
Erstellen Sie eine globale Konfiguration:
Erstellen Sie eine Systemkonfiguration:
Und wie Sie sich vorstellen können, überschreibt das Projekt das globale und das globale Überschreibungssystem.
quelle
git config user.name
odergit config user.email
zeigt Ihnen den Namen oder die E-Mail-Adresse, die Git für das aktuelle Repository verwendet.Ab Git-Version 2.13 unterstützt Git bedingte Konfigurations-Includes . In diesem Beispiel klonen wir die Repos von Firma A im
~/company_a
Verzeichnis und die Repos von Firma B in~/company_b
.In deine
.gitconfig
kannst du so etwas stecken.Beispielinhalt von .gitconfig-company_a
Beispielinhalt von .gitconfig-company_b
quelle
Danke @ crea1
Eine kleine Variante:
Wie es auf https://git-scm.com/docs/git-config#_includes geschrieben steht :
Also benutze ich in meinem Fall
~ / .gitconfig :
Wenn sich das Projektverzeichnis in my befindet
~/wokspace/
, werden die Standardbenutzereinstellungen durch~ / .gitconfig-w ersetzt :
quelle
git config user.name
richtig ist, sollte es in Ordnung sein. Sind Sie unter GNU / Linux oder einem anderen Betriebssystem?Um explizit zu sein, können Sie auch
--local
die aktuelle Repository-Konfigurationsdatei verwenden :quelle
Sie können die Umgebungsvariable auch
GIT_CONFIG
auf eine Datei verweisen, diegit config
verwendet werden soll. MitGIT_CONFIG=~/.gitconfig-A git config key value
der angegebenen Datei wird manipuliert.quelle
Ich mache das für meine E-Mail folgendermaßen:
Wenn ich dann ein neues Arbeitsprojekt klone, muss ich es nur ausführen
git hobbyprofile
und es wird für die Verwendung dieser E-Mail konfiguriert.quelle
Eine andere Möglichkeit besteht darin, direnv zu verwenden und Konfigurationsdateien pro Verzeichnis zu trennen. Zum Beispiel:
Jedes
.envrc
sollte so etwas enthalten:Und
.gitconfig
ist gitconfig mit gewünschten Werten üblich.quelle
Sie können die Git-Konfiguration eines Projekts anpassen, indem Sie die repository-spezifische Konfigurationsdatei (dh
/path/to/repo/.git/config
) ändern . Übrigens,git config
schreibt standardmäßig in diese Datei:Ich ziehe es separate Profile für verschiedene Projekte erstellen (zB in
~/.gitconfig.d/
) und dann ist sie in der Konfigurationsdatei des Repository:Dies funktioniert gut, wenn Sie denselben Optionssatz in mehreren Repos verwenden müssen, die zu einem einzelnen Projekt gehören. Sie können auch Shell-Aliase oder einen benutzerdefinierten Git-Befehl einrichten, um die Profile zu bearbeiten.
quelle
Ich bin im selben Boot. Ich habe ein kleines Bash-Skript geschrieben, um sie zu verwalten. https://github.com/thejeffreystone/setgit
quelle
-s
in Ihrem Bash-Skript nicht behandelt.Beim Versuch,
git stash
meine lokalen Änderungen vorzunehmen, ist ein Fehler aufgetreten . Der Fehler von git sagte "Bitte sag mir, wer du bist" und sagte mir dann "Ausführengit config --global user.email "[email protected]
undgit config --global user.name "Your name"
die Standardidentität deines Kontos festlegen". Sie müssen jedoch --global weglassen , um die Identität nur in Ihrem aktuellen Repository festzulegen .quelle