2012-06-17 2 views
8

Ich arbeite mit meinen eigenen Projekten und arbeite ab und zu für Dritte, wo ich ihre Kontaktinformationen etc. in Commits verwenden muss. Normalerweise verwende ich nur globale Commit-Namen usw., aber jetzt muss ich Commit-Namen und E-Mails entsprechend dem Verzeichnis angeben. Wie kann ich das in Git machen?Git Commit E-Mail des Autors entsprechend dem Verzeichnis und/oder Projekt?

Vielleicht nützliche Informationen in Bezug

  1. What is the difference between author and committer in Git?

  2. Git commit with no email

+0

Mögliche Duplikat eine Zeile wie diese in Ihre .bashrc hinzufügen [Kann ich mehrere Benutzer für mich in .gitconfig angeben?] (Https://stackoverflow.com/questions/4220416/can-i- specify-multiple-users-for-myself-in-gitconfig) –

Antwort

13

Sie können einen Benutzernamen und eine E-Mail-Adresse pro Repository haben, die Ihre globalen Einstellungen ersetzen. Es wirkt sich auf Commits aus, die im aktuellen Repository, aber nicht in anderen Repositorys vorgenommen werden.

git config user.name "Foo Bar" 
git config user.email "[email protected]" 

Sie können bestätigen, dass Ihre lokalen Informationen, um Ihre globalen Standardeinstellung überschreiben mit:

git config -l | fgrep user. 

Es mehrere Einträge zeigen kann (zB sowohl eine globale und eine lokale Konfigurationseinstellung), aber was auch immer gezeigt letzte in der Liste hat Vorrang.

2

Verwenden Sie den folgenden Befehl, um Ihre ch zu begehen anges

git commit -m "Commit message" --author "Your Name <email>" 

Dann werden Sie in der Lage sein, den Autor, E-Mail explizit für diese Festschreibung festlegen.

+0

... gibt es keine Möglichkeit, dies implizit/automatisch vielleicht in einer Datei zu machen? Vielleicht etwas zentralisiert wie gitolite, aber nur für die Verwaltung von Anmeldeinformationen und Kontakten (nicht sicher, ob möglich, gut, also die q)? – hhh

0

Wenn Sie verschiedene Autor/Committer Name/E-Mail nach Ordnern angeben müssen. Sie können

PROMPT_COMMAND='[[ $PWD =~ ^path/to/dir.*$ ]] && { export GIT_COMMITTER_EMAIL=email && export GIT_COMMITTER_NAME=name && export GIT_AUTHOR_EMAIL=email && export GIT_AUTHOR_NAME=name; } || { unset GIT_COMMITTER_NAME && unset GIT_COMMITTER_EMAIL && unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL; }'