まずはリポジトリの状態確認
git log git statuts git diff
元に戻すコマンド
戻す対象とコマンドを列挙していきます。
addしていないファイル
# .はパス。パス以下を戻す git checkout .
※ 新規作成ファイルは削除されない
addしたファイル
git reset .
オプション、--mixedと同等。HEADの位置とインデックスを変更する
新規ファイルを含めて、すべての変更を元に戻す
対象ファイルを指定しないとすべての変更が元に戻るので注意
# 対象ファイルを念のため確認 git clean -n # 削除実行 git clean -f <対象ファイル>
直前のcommitを戻す(ローカル変更内容はそのまま)
git reset HEAD^
cherry-pickを取り消す
git reset --hard HEAD~
初期コミットをなかったことにする
初期コミットファイルは残る。
git update-ref -d HEAD
異なるユーザーでpushしたコミットを戻す
間違えたプッシュをリモートから取消
git push -f origin HEAD^:[ブランチ名] これでgithub上から直前のプッシュを取り消す
間違えたコミットを取り消し
直前のコミットを取り消す(--softオプションにより変更したファイルはそのまま)
git reset --soft HEAD^
ユーザ名変更
cat .git/config で今のユーザ設定確認 git config user.name "hoge" git config user.email "hoge@hoge.com"
再びコミット&プッシュすることで自分がコミット&プッシュしたことにできる