最近個人的にgitとかGitHubを使うことが多くなったのでメモ。
直前の「git add」の取り消し
git reset HEAD
使用方法: git addを間違えて打ってしまった時に使う
git reset "コミットのハッシュ値"
でそのコミットまで戻ることができ、HEADは直前のコミットを意味するので、直前にステージングしたものを戻せる。
ファイルを特定のコミットの状態まで戻す
git log #戻りたいコミットのハッシュ値の確認
git reset --hard "コミットのハッシュ値"
使用方法: 作業していた内容が大幅に間違っていた(バグった)時に前の状態に戻したい時に使う
git reset に --hardオプションを付けると、ファイルの内容とステージング状態の遡った分は消える。--softだと指定したコミットの状態に戻るが、遡った分は消えない。
[参考] git resetを使いこなす
特定のコミットの変更点を見る
git diff "コミットのハッシュ値"^ "コミットのハッシュ値"
"コミットのハッシュ値"^ は1個前のコミットを意味する。^^は2個前。
2個以上前のコミットメッセージを変更
git rebase -i HEAD~3
# 該当コミットのpickをeditに変更
git commit --amend
git rebase —continue
使用方法: gitアカウントを使い分けている時に、違うアカウントでコミットしまくってしまった。コミットのAuthorを書き換えたい時に使う。
1個前のコミットメッセージはgit commit --amendで変更可能だが、それより前のコミットメッセージを変更するにはこれを使う。
特定のファイルのコミットログを見る
git log “ファイルパス”
git log -p “ファイルパス” pを付けるとファイルの変更箇所が見れる。
色々操作をミスったら戻す
git reflog
git reset —hard HEAD@{reflogで見た番号}
使用方法: 前述のgit reset --hardで前の状態に戻したが、やっぱり戻すのを辞めたくなった時に使う。
git reflogでgit resetなどの操作履歴を表示することが出来る。git resetでその操作履歴を無かったことにする。