#git
Внимание! Это перевод вопроса Change the author and committer name and e-mail of multiple commits in Git Я обнаружил, что в моём репозитории некоторые коммиты были сделаны под пользователем root. Можно ли как-то исправить имя автора и емейл во всех "неправильных" коммитах?
Ответы
Ответ 1
Чтобы изменить автора (или коммитера) вам понадобится переписать всю историю репозитория, начиная с первого коммита этого автора. Если вы согласны с этим (во многих командах избегают переписывания истории), то вы можете поправить историю при помощи git filter-branch. Страницы описания включают несколько примеров с которых вы можете начать. Конкретно, вы можете поправить неправильные имена авторов и их емейлы для всех веток и всех тегов при помощи данной команды (источник: GitHub help): #!/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 Обратите внимание: хотя скрипт написан на sh, но его можно выполнить и под windows в случае если у вас установлен git. Для этого сначала в папке репозитория выберите git bash here, а потом запустите скрипт командой sh <имя файла скрипта.sh>. Также если вам необходимо полностью удалить старые данные, то вы можете воспользоваться информацией из этого вопроса: Как реально удалить в git формально удаленные данные?
Комментариев нет:
Отправить комментарий