#author("2020-10-14T00:56:19+09:00","default:ryuichi","ryuichi")
#author("2020-10-14T00:58:21+09:00","default:ryuichi","ryuichi")
* 過去のコミット群のAuthorの名前やEmailを書き換える [#ec0c425b]
** 前提 [#if9237f7]
- 過去のコミット群を書き換えるので、リビジョンのSHA1ハッシュが書き換わることになる
- したがって、Githubなど使って共同でソースコードを管理している場合、予期せぬ問題が発生しないか、よく検討してから行う必要がある
** 方法 1. git filter-branch [#ze8d0409]
git filter-branch -f --env-filter "
GIT_AUTHOR_NAME='Newname'
GIT_AUTHOR_EMAIL='new@email'
GIT_COMMITTER_NAME='Newname'
GIT_COMMITTER_EMAIL='new@email'
" HEAD
- git filter-branchの危険性は以下のページで説明されている
- http://schacon.github.io/git/git-filter-branch.html
** 方法 2. git rebase -i [#t8d6ab62]
git rebase -i HEAD~4 -x "git commit --amend --author 'Author Name <author.name@mail.com>' --no-edit"
- git filter-branchよりもこちらの方がこれから行われることを目視できるので安全だと思われる
- HEAD~4は過去の4つのコミットを書き換えるという意味。必要に合わせて指定する
** 書き換え後、GitHubなどへPUSHする [#i1c08dc3]
git push -f origin master
- SHA1ハッシュが書き換わってるので-fオプションが必要
** 参考 [#ye7f6d5b]
https://stackoverflow.com/questions/750172/how-to-change-the-author-and-committer-name-and-e-mail-of-multiple-commits-in-gi?page=1&tab=active#tab-top