Ich versuche, von meinem Arbeits-Laptop aus, der bereits für den Git-Server des Unternehmens konfiguriert ist , ein Projekt auf github.com durchzuführen. Gibt es eine Möglichkeit, verschiedene Autorenanmeldeinformationen anzugeben, die mithilfe einer anderen Konfigurationsdatei oder anderer Befehlszeilenoptionen möglich sind?
Ich habe es versucht
--author="My Name <[email protected]>"
und ich erhielt die Nachricht:
Committer: unknown <[email protected]>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config --global user.name "Your Name"
git config --global user.email [email protected]
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
Mein Benutzername für das Commit für das Projekt github.com wurde jedoch nicht aktualisiert. Kann ich noch etwas ausprobieren und ist es überhaupt möglich?
-c user.name=Me [email protected]
. Informationen zum Verwenden einer benutzerdefinierten globalen Konfiguration finden Sie in dieser Frage oder zum Verwenden eines Shell-Alias mit-c
Optionen. Aber beides ist in dieser Situation wahrscheinlich nicht das Richtige - Sie möchten eine Konfiguration pro Repo.{author,committer}.{name,email}
. Siehe meine Antwort untenAntworten:
Erstens ist der Autor nicht unbedingt derselbe wie der Committer. Git verfolgt beide.
Um festzulegen, welcher Name nur für dieses Repository verwendet werden soll, haben Sie folgende Möglichkeiten:
Beachten Sie das Fehlen der
--global
Option. Dadurch wird die Konfiguration nur in diesem Repository festgelegt.Alternativ können Sie dies nur für einen einzelnen Befehl tun, indem Sie die folgende
-c
Option verwenden:Aber ich denke, es ist besser, nur die obigen Konfigurationsoptionen zu verwenden.
quelle
Versuchen Sie, dies Ihrem git-Befehl voranzustellen:
Dies ist für einen One-Shot in Ordnung, aber Sie können dies lieber in der .git / config-Datei des lokalen Repos speichern, das Sie von git geklont haben. Dies kann durch Ausführen
git config
(kein --global oder --system, um es "lokal für das Repo" zu machen) oder durch Bearbeiten von.git/config
(es ist dieselbe Syntax wie) erfolgen~/.gitconfig
quelle
.bash_aliases
und / oder einen Pre-Commit-Hook festlegen, um das Commit abzulehnen, wenn der Benutzer nicht definiert ist.Sie können auch Umgebungsvariablen
GIT_COMMITTER_NAME
,GIT_COMMITTER_EMAIL
,GIT_AUTHOR_NAME
, undGIT_AUTHOR_EMAIL
auf einer Pro-Shell oder sogar pro-Befehl - Basis.quelle
git commit --amend
. Nur der Commiter hat sich geändert.git commit --amend --author="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>"
git commit --amend
der Autor von Natur aus nicht verändert wird, wie auf der Manpage angegeben. Lösung:git commit --amend --reset-author
Ich glaube du könntest rennen:
für verschiedene Teile von Git. Öffnen Sie den Ordner, in dem die Arbeit für das Repo ausgeführt wird, auf dem Github-Server.
Stellen Sie sicher, dass in diesem Arbeitsordner ein .git-Ordner angezeigt wird. Öffnen Sie nun diesen Ordner in Terminal / Console / CommandPrompt und versuchen Sie, den Benutzernamen und die E-Mail-Adresse für diesen Ordner nur durch Ausführen der oben angegebenen Befehle zu ändern.
Wenn Sie dies ändern, können Sie jetzt möglicherweise auf den GitHub-Server zugreifen.
Schauen Sie hier: https://help.github.com/articles/setting-your-username-in-git https://help.github.com/articles/setting-your-username-in-git
Ich glaube auch, dass es eine Möglichkeit gibt, mithilfe Ihres Github-Benutzernamens und -Kennworts im Befehl selbst auf ein Remote-Repo zuzugreifen, aber ich zitiere es nicht, weil es bei mir nicht funktioniert hat.
quelle
Die Antwort von Jesse Glick hier mit einer erweiterten Implementierung weiterverfolgen, da IMO sein Vorschlag der beste Weg ist, dies zu tun.
Fügen Sie das Folgende zu Ihrem .bash_profile hinzu. Sie werden aufgefordert, einen Benutzer einzugeben, wenn Sie zum ersten Mal einen git-Befehl in der aktiven Shell ausführen. Der Benutzer wird dann für alle nachfolgenden Läufe gespeichert.
(Verweisen Sie einen eingegebenen Benutzerwert offensichtlich auf die genauen gewünschten Namen und E-Mail-Adressen für die verschiedenen git auther / name-Werte im Fallblock und aktualisieren Sie die Zuweisungen nach Bedarf.)
quelle
Seit Git 2.22 (Q2 2019) haben Sie eine neue Option: Vier neue Konfigurationsvariablen
{author,committer}.{name,email}
wurden eingeführt, um sieuser.{name,email}
in bestimmten Fällen zu überschreiben .Siehe Commit 39ab4d0 (04. Februar 2019) von William Hubbs (``) .
(Zusammengeführt von Junio C Hamano -
gitster
- in Commit 4e021dc , 07. März 2019)quelle