質問: 下記コマンドで、過去すべてのコミット名のオーサー名を変更できることを知りました。 ``` $ git filter-branch --commit-filter ' GIT_AUTHOR_NAME="idesaku" GIT_AUTHOR_EMAIL="(メールアドレス)" GIT_COMMITTER_NAME="idesaku" GIT_COMMITTER_EMAIL="(メールアドレス)" git commit-tree "$@" ' HEAD ``` 稀に、個人のメールアカウントでコミットしてしまうことがあり、そういうケースなどで活用したいと思っております。 直近のコミット名、もしくは、すべてのコミット名に対しては、オーサー名を変えられるのですが、 すべてのコミット名の場合、書き換えに時間を要するのと、相手側もgit pullする際に時間がかかってしまいます。 そこで、直近5件のみのコミットに対し、書き換えができる方法を探しております。 ``` git commit-tree "$@" ``` というのが肝かと思い、調べているのですが、 直近5件を取得する方法がわかりませんでした。 必ず、直近数件という取り方でなくとも、ブランチを切って作業しているため、developブランチに対しての差分コミットのみを対象といった形でも大丈夫です。 宜しくお願い致します。
回答: filter-branchはrev-listを指定可能になっていますので、直近5件であれば ``` $ git filter-branch --commit-filter ' GIT_AUTHOR_NAME="idesaku" GIT_AUTHOR_EMAIL="(メールアドレス)" GIT_COMMITTER_NAME="idesaku" GIT_COMMITTER_EMAIL="(メールアドレス)" git commit-tree "$@" ' HEAD~5..HEAD ``` でどうでしょうか。 参考