Sobes.tech
Junior — Middle
171

Comment réaliser la modification de l'auteur dans tous les commits de l'historique du projet tout en conservant les autres métadonnées?

Entreprises à qui on a demandé
Umbrella IT

Réponse de l'IA

sobes.tech IA

Для изменения авторства всех коммитов в истории Git, сохраняя остальные метаданные, можно использовать команду git filter-branch с параметром --env-filter. Этот скрипт позволяет изменить переменные окружения, отвечающие за автора и коммитера, без изменения содержимого коммита.

Пример изменения имени и email автора и коммитера:

git filter-branch --env-filter '
if [ "$GIT_COMMITTER_EMAIL" = "old@example.com" ]; then
    GIT_COMMITTER_NAME="New Name"
    GIT_COMMITTER_EMAIL="new@example.com"
fi
if [ "$GIT_AUTHOR_EMAIL" = "old@example.com" ]; then
    GIT_AUTHOR_NAME="New Name"
    GIT_AUTHOR_EMAIL="new@example.com"
fi
' -- --all

После выполнения команды история будет переписана с новым авторством, остальные метаданные (даты, сообщения, содержимое) сохранятся. Важно помнить, что переписывание истории требует форсированного пуша и может повлиять на совместную работу с репозиторием.