Удалить информацию о коммиттере из 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