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