LoginSignup
3
3

More than 3 years have passed since last update.

Gitでコミットするアカウントを間違えた際に対象アカウントのみ一括置換する方法

Last updated at Posted at 2017-03-17

2017-03-21追記:AUTHORだけ変更すると、githubのコミット履歴でアイコンがAUTHORとCOMITTERの2重で重なってしまうため、両方変更するようにコマンドを書き換えました。

2019-12-22追記:待たされるようになったので、待たされないように環境変数追加。まじ余計なお世話かと。。

注)force pushを伴うので、バックアップを取ってから実行するように!!

FILTER_BRANCH_SQUELCH_WARNING=1 git filter-branch -f --commit-filter '
        if [ "$GIT_COMMITTER_EMAIL" = "daijinload@gmail.com" ];
        then
                GIT_AUTHOR_NAME="daijinload";
                GIT_AUTHOR_EMAIL="daijinload@gmail.com";
                GIT_COMMITTER_NAME="daijinload";
                GIT_COMMITTER_EMAIL="daijinload@gmail.com";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

# 確認
$ git log --pretty=fuller
Author:     daijinload <daijinload@gmail.com>
AuthorDate: Sat Nov 10 17:37:13 2018 +0900
Commit:     GitHub <noreply@github.com>
CommitDate: Sat Nov 10 17:37:13 2018 +0900

    Initial commit

$ git push -f origin feature/hoge

6.4 Git のさまざまなツール - 歴史の書き換え

完全にこちらから抜粋となります。

注意点としては、force pushが必要になるので、変えたあとに同じブランチで作業している人に連携が必須なことですかね。

基本的にブランチ切って作業していれば、大きな影響は無いような気もします。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3