Я переустановил ветку, и теперь все ее коммиты имеют раздел коммиттера, который я бы полностью удалял (не просто меняя его поля). Возможно ли без потери первоначальной информации об авторе?
Удалить информацию о коммиттере из git совершает
Ответ 1
Благодаря @sergej и GitHub, я удалил информацию об участниках с помощью
git filter-branch --env-filter '
if [ "$GIT_COMMITTER_EMAIL" != "$GIT_AUTHOR_EMAIL" ]; then
export GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
fi
' --tag-name-filter cat -- --branches --tags
Ответ 2
Вам нужно переписать всю историю вашего репозитория Git.
GitHub имеет script, который делает это, см. Изменение информации об авторе.
Это должно быть прямо, чтобы принять его к вашим потребностям:
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="[email protected]"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="[email protected]"
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