620 Stimmen

Ist es möglich, verschiedene Git-Konfigurationen für verschiedene Projekte zu verwenden?

.gitconfig wird normalerweise in der user.home Verzeichnis.

Ich verwende eine andere Identität, um an Projekten für Unternehmen A zu arbeiten, und eine andere für Unternehmen B (vor allem 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 verknüpft werden?

18voto

German Lashevich Punkte 1943

Eine andere Möglichkeit ist die Verwendung von direnv und um die Konfigurationsdateien pro Verzeichnis zu trennen. Zum Beispiel:

.
 companyA
   .envrc
   .gitconfig
 companyB
   .envrc
   .gitconfig
 personal
    .envrc
    .gitconfig

Jede .envrc sollte in etwa so aussehen:

export GIT_CONFIG_GLOBAL=$(pwd)/.gitconfig

Und .gitconfig ist die übliche gitconfig mit den gewünschten Werten.

Dies ist das, was ich tatsächlich in der benutzerdefinierten .gitconfig Dateien:

[user]
    email = my.name@company.com

[include]
    path = ~/.gitconfig

Hier nur user.email überschrieben wird, wird die restliche Konfiguration von der Standardkonfiguration übernommen ~/.gitconfig .

16voto

ivand58 Punkte 783

Ich mache das für meine E-Mail folgendermaßen:

git config --global alias.hobbyprofile 'config user.email "me@example.com"'

Wenn ich dann ein neues Arbeitsprojekt klone, muss ich nur noch git hobbyprofile und es wird so konfiguriert, dass diese E-Mail verwendet wird.

13voto

Stefan Näwe Punkte 2982

Sie können auch die Umgebungsvariable GIT_CONFIG in eine Datei, die git config verwenden sollten. Mit GIT_CONFIG=~/.gitconfig-A git config key value wird die angegebene Datei manipuliert.

4voto

Eugene Yarmash Punkte 130008

Sie können die Git-Konfiguration eines Projekts anpassen, indem Sie die repository-spezifische Konfigurationsdatei ändern (d.h. /path/to/repo/.git/config ). ÜBRIGENS, git config schreibt standardmäßig in diese Datei:

cd /path/to/repo
git config user.name 'John Doe'  # sets user.name locally for the repo

Ich ziehe es vor, separate Profile für verschiedene Projekte zu erstellen (z. B. in ~/.gitconfig.d/ ) und dann einschließen. sie in der Konfigurationsdatei des Repositorys:

cd /path/to/repo
git config include.path '~/.gitconfig.d/myproject.conf'

Dies funktioniert gut, wenn Sie dieselben Optionen in mehreren Repos verwenden müssen, die zu einem einzigen Projekt gehören. Sie können auch Shell-Aliase oder einen benutzerdefinierten Git-Befehl einrichten, um die Profile zu bearbeiten.

2voto

Tejas Savaliya Punkte 386

Folgen Sie den Schritten:

  1. Finden Sie .gitconfig im System

    Dateispeicherort für Windows : " C:\Users ${USER_NAME}.gitconfig"

    Dateispeicherort für Linux : "/usr/local/git/etc/gitconfig"

  2. Öffnen Sie die Datei .gitconfig und fügen Sie die folgenden Zeilen entsprechend Ihren Anforderungen hinzu

     [includeIf "gitdir:D:\ORG-A-PROJECTS\"]
    
     [user]
    
         name = John Smith
    
         email = js@organizationx.com [includeIf "gitdir:~/organization_b/"]
    
     [user]
    
         name = John Doe
    
         email = jd@organizationy.com

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X