125 votes

Puis-je changer mon nom et mon prénom dans tous les commits précédents ?

Je voudrais changer mon nom, mon prénom et mon email dans tous mes commits, est-ce possible ?

57voto

user11153 Points 375

Pour réécrire à la fois l'auteur et l'auteur dans tous les commits sélectionnés :

git filter-branch --commit-filter \
'if [ "$GIT_AUTHOR_NAME" = "OldAuthor Name" ]; then \
export GIT_AUTHOR_NAME="Author Name";\
export GIT_AUTHOR_EMAIL=authorEmail@example.com;\
export GIT_COMMITTER_NAME="Commmiter Name";\
export GIT_COMMITTER_EMAIL=commiterEmail@example.com;\
fi;\
git commit-tree "$@"'

40voto

denis.peplin Points 1648

S'il n'y a pas d'autres auteurs, vous pouvez le faire :

git filter-branch --commit-filter 'export GIT_AUTHOR_NAME="authorname"; \
export GIT_AUTHOR_EMAIL=mail@example.com; git commit-tree "$@"'

13voto

Josh Points 3539

Enregistrez le script ci-dessous comme par exemple ~/.bin/git-replace-author et exécutez-le en utilisant, par exemple :

git replace-author "John Ssmith" "John Smith" "johnsmith@example.com"

Sans argument, il met à jour tous les commits avec votre nom pour utiliser votre adresse e-mail actuelle selon la configuration Git.

DEFAULT_NAME="$(git config user.name)"
DEFAULT_EMAIL="$(git config user.email)"
export OLD_NAME="${1:-$DEFAULT_NAME}"
export NEW_NAME="${2:-$DEFAULT_NAME}"
export NEW_EMAIL="${3:-$DEFAULT_EMAIL}"

echo "Old:" $OLD_NAME "<*>"
echo "New:" "$NEW_NAME <$NEW_EMAIL>"
echo "To undo, use: git reset $(git rev-parse HEAD)"

git filter-branch --env-filter \
'if [ "$GIT_AUTHOR_NAME" = "${OLD_NAME}" ]; then
    export GIT_AUTHOR_NAME="${NEW_NAME}"
    export GIT_AUTHOR_EMAIL="${NEW_EMAIL}"
    export GIT_COMMITTER_NAME="${NEW_NAME}"
    export GIT_COMMITTER_EMAIL="${NEW_EMAIL}"
fi'

RAW (à télécharger)

3voto

EnabrenTane Points 5262

Seulement si vous n'avez pas poussé vos engagements au monde. Les autres sages ont votre ancien nom dans leur repo, ce qui est peu probable que vous puissiez changer celui de tout le monde.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X