前提
さっきコミットしたファイルの記述を一部間違えたので訂正してコミットをやり直したい時。
pushしていないことが前提。
A:直前のコミットをやり直す
① (ファイルを修正する)
② % git add .
③ % git commit --amend
(vim立ち上がりコメントを修正)
-
上記が終わったら、念のため
git --oneline log -p -n 3
などでうまくいってるか確認。 -
【vimの使い方】
i
と打つと入力できるようになる→コメント入力やEscキーで切り替え→:wq
と入力。 -
コメントも修正したい場合はここで修正できる。
B:何個か前のコミットをやり直す
① % git rebase -i コミットID
② ファイル修正
③ % git add ファイル名
④ % git commit --amend
(vim立ち上がりコメントを修正)
⑤ % git rebase --continue
①について
例えば、直前3つのコミットをやり直すときは、
% git rebase -i HEAD~3
すると下記のようにvimが立ち上がる。
例えば、この3つのファイルのうちfirst.html
を修正したいならpick
をedit
に変更しEscキーで切り替え→:wq
で閉じる。変更したくないファイルはpick
のままにする。
②について
エディタで修正したいファイル(ここではfirst.html
)を開き、正しく修正し保存。
③、④のコマンドを入力
【vimの使い方】
iと打つと入力できるようになる→コメント入力やEscキーで切り替え→:wqと入力。
コメントも修正したい場合はここで修正できる。
これでfirst.html
の修正は終了。
⑤について
次のコミット修正に進むためにgit rebase --continue
入力。
①の時点で3つのファイルのうち他のsocond.html
とthird.html
はpick
にしてたのでこのまま終了となる。もし他のファイルもedit
にしていた場合はvimが立ち上がり同じ手順を繰り返す。
念のためgit --oneline log -p -n 3
などでうまくいってるか確認。
参考文献:Udemy もう怖くないGit!チーム開発で必要なGitを完全マスター (山浦 清透)