誤ったGitアカウントでコミット・プッシュした場合の対処法
はじめに
初めまして、やすのりです。
この記事では、諸事情[1]により複数のGithub
アカウントを使用しているが、コミット・プッシュするユーザーを間違えてしまった場合の対処法について備忘録も兼ねて、お伝えしていきたいと思います。
※自分が執筆した記事なら振り返りやすいですしね笑
発生事象の状況
- gitで作業中、誤ったアカウントの情報[2]でコミットしてしまった。
- 更にそのコミットをリモートリポジトリにプッシュしてしまった。
あるべき姿
- 正しいアカウント情報でのコミットがリモートリポジトリに反映している。
対応方針
- ローカル環境にて、該当コミットのアカウント情報を修正。
- リモートリポジトリに反映させるために強制プッシュ(
force push
)。
対応方法
1. ローカル環境にて、該当コミットのアカウント情報を修正。
まずローカル環境で誤ったアカウントで実行したコミットのアカウント情報を修正しましょう。
1-1 正しいアカウント情報になっているか確認もしくは変更
そもそも現状が正しいアカウントに切り替わっているのか確認します。
git config user.name
git config user.name
上記コマンドで現在のアカウント設定を確認し合っていれば1-2へ、誤っていればこのまま下記手順で正しい情報に設定し直しておきましょう。
git config user.name "Correct Name"
git config user.email "correct@name.com"
これで設定完了です!
1-2 修正対象コミットの確認
次に、誤ったアカウント情報で作成したコミットを確認していきます。
下記コミットログ確認用コマンドでAuthor
部分が誤ったアカウント情報になっているコミットを探します。
git log
コミットを見つけたら、コミットのハッシュ値
もしくは最新コミットから何番目か
をメモしておきましょう!
1-3 修正対象コミットを実際に修正
それでは最後にコミットを修正していきましょう。
先ほど確認したコミットが修正範囲に入るように、下記コマンドを実行しましょう。
# HEAD(最新コミット)から3つ前のコミットまで遡る
git rebase -i HEAD~3
# もしくはハッシュ値で指定
git rebase -i <hash-of-commit>
すると下記のようなエディタが開くので、修正したいコミットのpick
部分をedit
に変更しエディタを閉じてください。
pick cffe0df 最新
pick 1e51we4 最新から2つ目
pick 2cb2342 最新から3つ目
# Rebase 2eb177e..2cbec48 onto 2eb177e (3 commands)
#
# Commands:
# ......
今回はコミットメッセージ等ではなく、アカウントの情報変更だけなので、下記コマンドを実行しましょう。
git rebase --continue
これだけで基本は完了です!
もし修正対象のコミットが複数あるなら、上記の作業を繰り返しましょう。
force push
)。
2. リモートリポジトリに反映させるために強制プッシュ(ローカル環境で修正したコミットの内容をリモートリポジトリに反映させます。
git push --force
上記コマンドを実行後、リモートリポジトリにアカウント情報が正しく反映されていれば終了です!
再発防止
これで修正方法はわかりましたが、極力この事象自体を起こさないようにしておきたいです。
なので私はこちらの記事を参考に、ターミナル上でアカウント名が常に表示されるようにしておきました。
この記事が誰かのお役に立てば嬉しいです!
Discussion