私の外部記憶装置

ただの覚え書きです。ちょこちょこ見直して加筆・修正していますが、間違ってるかも😅

【Git】Authorの変更

状況

  • macOSを再インストールした為に、gitのauthorの設定が必要だったが、やらずにcommitをリモートにプッシュしてしまった。
    その結果、自分のGitアカウントにcommitが紐付けされなかった(GitHub上でcommit横にアイコンが表示されなかった)

対応

1)gitのauthorの設定

# 状態を確認
git config --global --list
# Author(ユーザ名とメール)を設定
git config --global user.name ユーザ名
git config --global user.email メール

2)ローカルで過去のコミットのAuthorを修正
  (参考:【Git】プッシュ前にコミットを1つにまとめる(squash)

git rebase -i 修正したいコミットより1個古いコミットID
# 変更したいコミットの文頭をeに変更(複数可)
# 以降、1コミットずつ変更していくことになる。下記①②を繰り返す
# ①Authorの修正
git commit --amend --reset-author
# (コミットメッセージの編集画面が開くので:wqでOK)
# ②修正完了し、次のコミットに移行
git rebase --continue

3)リモート(open状態のプルリク)に修正を反映
  (参考:【Git】リモートにプッシュできない(error: failed to push some refs to 'https〜)

git pull --rebase origin main
git push --force-with-lease origin 自分の作業ブランチ名

参考

過去のgitコミットのCommitとAuthor情報を修正する - ひと夏の技術
git - How can I change the commit author for a single commit? - Stack Overflow
Git の Commit Author と Commiter を変更する #Git - Qiita
Git: コミット済みのAuthorとCommit情報を変更する方法(rebase)
Git - Rewriting History < git-scm.com book