Autoreninformationen ändern
Um den Namen und/oder die E-Mail-Adresse zu ändern, der/die in vorhandenen Commits angegeben ist, müssen Sie den gesamten Verlauf Ihres Git-Repositorys neu schreiben.
Warnung: Diese Aktion nimmt irreversible Änderungen am Verlauf Ihres Repositorys vor. Wenn Sie mit anderen zusamen an einem Repository arbeiten, gilt es als unerwünscht, einen veröffentlichten Verlauf umzuschreiben. Sie sollten dies nur im Notfall tun.
Den Git-Verlauf eines Repositorys mit einem Skript ändern
Wir haben ein Skript erstellt, das in allen Commits die alte E-Mail-Adresse in den Autoren- oder Beitragender-Feldern durch den korrekten Namen und die richtige E-Mail-Adresse ersetzt.
Hinweis: Durch die Ausführung dieses Skripts wird der Verlauf für alle Repository-Mitarbeiter neu geschrieben. Wenn diese Schritte ausgeführt wurden, müssen alle Personen mit Forks oder Klonen den geänderten Verlauf abrufen und alle lokalen Änderungen in den neuen Verlauf übergeben.
Für die Ausführung dieses Skripts benötigen Sie Folgendes:
- die alte E-Mail-Adresse, die in den Autoren-/Beitragender-Feldern steht und die Sie ändern möchten
- den richtigen Namen und die richtige E-Mail-Adresse, die mit solchen Commits verknüpft werden sollen
-
Open TerminalTerminalGit Bash.
-
Erstellen Sie einen neuen, leeren Klon Ihres Repositorys:
git clone --bare https://Hostname/user/repo.git cd repo.git
-
Kopieren Sie das Skript in das Terminal. Ersetzen Sie dabei die folgenden Variablen entsprechend den vorliegenden Informationen:
OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL
#!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="your-old-email@example.com" CORRECT_NAME="Your Correct Name" CORRECT_EMAIL="your-correct-email@example.com" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" fi ' --tag-name-filter cat -- --branches --tags
-
Drücken Sie die Eingabetaste, um das Skript auszuführen.
-
Überprüfen Sie den neuen Git-Verlauf auf Fehler.
-
Pushen Sie den korrigierten Verlauf zu GitHub Enterprise:
git push --force --tags origin 'refs/heads/*'
-
Entfernen Sie den temporären Klon:
cd .. rm -rf repo.git