Ответ 1
Все git commites имеют поле коммиттера внутри; вы можете увидеть это, набрав git cat-file commit HEAD
сразу после совершения чего-либо. Таким образом, вы не можете его стереть; вы можете сделать его равным полю автора.
Тем не менее, вы можете видеть фарфор git, показывающий поле фиксации, потому что дата-метра изменилась. Невозможно предсказать, что кто-то еще получит для фиксации даты фиксации, если они будут переустанавливаться, очевидно, но вы можете изменить его, как минимум, на исходную метку фиксации.
git filter-branch --commit-filter 'export GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; git commit-tree "[email protected]"' -- basecommit..HEAD
Это изменит коммиты после basecommit в истории HEAD (включая HEAD, не включая basecommit), делая поля коммиттера идентичными полям автора во всех отношениях. Если оригинальный автор соглашается сделать то же самое, тогда вы можете получить согласованный SHA1.