サーチ…
失われたコミットからのリカバリ
過去のコミットに戻って新しいコミットを失った場合は、実行して失われたコミットを回復できます
git reflog
あなたの失われたコミットを見つけて、
git reset HEAD --hard <sha1-of-commit>
コミット後に削除されたファイルを復元する
あなたが誤ってファイルの削除をコミットし、後でそれが必要であることが判明した場合
まず、ファイルを削除したコミットのコミットIDを見つけます。
git log --diff-filter=D --summary
ファイルを削除したコミットの要約をソートしてくれます。
その後、ファイルの復元に進みます。
git checkout 81eeccf~1 <your-lost-file-name>
(あなたのコミットIDで81eeccfを置き換えてください)
以前のバージョンにファイルを復元する
ファイルを以前のバージョンに復元するには、 reset
を使用できます。
git reset <sha1-of-commit> <file-name>
すでにローカルにファイルを変更した場合(必要ない場合)、-- --hard
オプションを使用することもできます
削除されたブランチを回復する
削除されたブランチを回復するには、実行して削除されたブランチの先頭であるコミットを見つける必要があります
git reflog
実行してブランチを再作成することができます
git checkout -b <branch-name> <sha1-of-commit>
gitのガベージコレクタが参照を持たないコミットを削除した場合、削除されたブランチを回復することはできません。特に小規模なチーム/プロプライエタリなプロジェクトで作業する場合は、常にリポジトリのバックアップを取ってください
リセットからの回復
Gitを使うと、(ほぼ)常に時計を戻すことができます
歴史*を書き換えるコマンドを実験するのを恐れないでください。 Gitはデフォルトでコミットを90日間削除しません。その間、あなたは簡単にreflogからそれらを回復できます:
$ git reset @~3 # go back 3 commits
$ git reflog
c4f708b HEAD@{0}: reset: moving to @~3
2c52489 HEAD@{1}: commit: more changes
4a5246d HEAD@{2}: commit: make important changes
e8571e4 HEAD@{3}: commit: make some changes
... earlier commits ...
$ git reset 2c52489
... and you're back where you started
* --hard
や--force
ようなオプションは--hard
。データを破棄することができます。
* また、共同作業しているブランチの履歴を書き換えないでください。
git stashから回復する
git stashを実行した後に最新のstashを取得するには、
git stash apply
あなたのひだのリストを見るには、
git stash list
次のようなリストが表示されます
stash@{0}: WIP on master: 67a4e01 Merge tests into develop
stash@{1}: WIP on master: 70f0d95 Add user role to localStorage on user login
必要な隠しアイテムに表示されている番号でリストアするには別のgit stashを選択してください
git stash apply stash@{2}
'git stash pop'を選ぶこともできますが、 'git stash apply'と同じように動作します。
git stash pop
または
git stash pop stash@{2}
git stashの違いとgit stash popの違い...
git stash pop : - 隠しデータは隠しリストのスタックから削除されます。
例: -
git stash list
次のようなリストが表示されます
stash@{0}: WIP on master: 67a4e01 Merge tests into develop
stash@{1}: WIP on master: 70f0d95 Add user role to localStorage on user login
コマンドを使用して隠密データをポップする
git stash pop
再び隠しリストをチェックする
git stash list
次のようなリストが表示されます
stash@{0}: WIP on master: 70f0d95 Add user role to localStorage on user login
1つのstashデータがstash listから削除(ポップ)され、stash @ {1}がstash @ {0}になりました。