human
Comment puis-je changer le nom/l'e-mail de l'auteur et du committer pour plusieurs commits
gpt
Voici la solution, mais faites attention si vous avez un référentiel multi-utilisateurs - cela changera tous les commits pour avoir le même (nouveau) auteur et committer.
```
git filter-branch -f --env-filter "
    GIT_AUTHOR_NAME='Nouveaunom'
    GIT_AUTHOR_EMAIL='nouveau@email'
    GIT_COMMITTER_NAME='Nouveaunom'
    GIT_COMMITTER_EMAIL='nouveau@email'
  " HEAD
```

Changer l'auteur (ou le committer) nécessiterait de réécrire toute l'historique. Si cela ne vous dérange pas et que vous pensez que cela en vaut la peine, vous devriez consulter git filter-branch. La page du manuel comprend plusieurs exemples pour vous aider à démarrer. Notez également que vous pouvez utiliser des variables d'environnement pour changer le nom de l'auteur, du committer, des dates, etc. - voir la section "Variables d'environnement" de la page du manuel de git.

Plus précisément, vous pouvez corriger tous les noms et e-mails d'auteur incorrects pour toutes les branches et les tags avec cette commande (source : aide GitHub) :
```
#!/bin/sh

git filter-branch --env-filter '
OLD_EMAIL="votre-ancien-email@example.com"
CORRECT_NAME="Votre Nom Correct"
CORRECT_EMAIL="votre-email-correct@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
```
Pour utiliser l'outil de filtrage d'historique alternatif `git filter-repo`, vous pouvez d'abord l'installer et construire un `git-mailmap` selon le format de `gitmailmap`.
```
Proper Name <proper@email.xx> Commit Name <commit@email.xx>
```
Et ensuite exécutez filter-repo avec le mailmap créé :
```
git filter-repo --mailmap git-mailmap
```