過去のコミット群のAuthorの名前やEmailを書き換える

前提

  • 過去のコミット群を書き換えるので、リビジョンのSHA1ハッシュが書き換わることになる
  • したがって、Githubなど使って共同でソースコードを管理している場合、予期せぬ問題が発生しないか、よく検討してから行う必要がある

方法 1. git filter-branch

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

方法 2. git rebase -i

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する

git push -f origin master
  • SHA1ハッシュが書き換わってるので-fオプションが必要

参考

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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2020-10-14 (水) 00:58:21