LoginSignup
1
0

More than 1 year has passed since last update.

githubで戻る方法

Posted at

コミットの取り消し

  • 直前のコミットをなかったことにする
git reset --soft HEAD^
  • 直前のコミットを取り消し
git reset --hard HEAD^
  • コミット後の変更を全部消したい
git reset --hard HEAD
  • addを取り消したい
git reset --mixed HEAD
  • git resetをなかったことにする
git reset --hard ORIG_HEAD

reflog

  • reflog(参照ログ)とは HEAD やブランチ先端の動きの履歴
    各個人のローカルリポジトリに存在
  • ブランチの切り替え、新たに加えられた変更のプル、履歴の書き換え、あるいは単なる新規コミットの実行などを記録
    git reflog で HEAD の移動履歴を、git reflog <ブランチ名> でそのブランチ先端が指していたコミットの一覧を確認可能
  • HEAD@{5}: HEAD の五つ前の状態を示す
$ git reflog
d22bfa0 HEAD@{0}: commit (amend): Add the contens of poem-c
8c9300c HEAD@{1}: commit: Add the contens of poem-c
6a67f31 HEAD@{2}: commit: Add empty poem-c
f7c3605 HEAD@{3}: reset: moving to @^
...
  • 間違えて意図と異なるコミットへ git reset --hard して、必要なコミットを失った場合
    git refloggit log -greflog を見る
  • 失ったコミットがあれば、git reset --hard HEAD@{<n>} でそのコミットへ HEAD を移動できる
  • git branch recover-branch HEAD@{<n>} すれば、そのコミットが先端のブランチを作成できる
1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0