最初に:慌てる必要はありません
これはリビジョン管理システムです。情報を簡単に失うことがないように存在します。
いつでも最初に作業を保存できます。
git checkout -b RESCUE_THIS
git add .
git commit -am 'Do not loose this commit!'
そこからそれを取ります。
私は提案します:
悪いコミットを元に戻す
git reset HEAD @ {1}#最後のコミットの場合
どの変更を保持したいかを考え出し、それらを新しいコミットにコミットする可能性があります。'HEAD @ {1} gitlog`を見つけるために使用することに注意してくださいgit reflog
part that you want. Take your time as this can be a bit confusing when comparing to
git revert bad-commit-id#そうでなかった場合
で元に戻すリビジョンを見つけることに注意git log
してください。複数のコミットを元に戻すことができます。時系列の逆順にそれらを元に戻します。それぞれの復帰は、そのコミットからのチャンスを「元に戻す」新しいコミットをもたらします。
たくさんのコミットを元に戻していることに気付いた場合は、代わりにリベースすることをお勧めします。
固定ブランチを中央リポジトリに強制的にプッシュします
- git push -f#おそらくブランチを指定します:
origin master
または同様のもの
残りの作業を「適切な」クライアントから復元します。
その時までに、RESCUE_THISブランチを削除することを選択できます。そうしたとしても、reflogが期限切れになるまで実際には消えません。
免責事項:上記のすべては、セットアップ、ブランチ履歴、ワークフロー、および特定の障害シナリオに関する前提条件に満ちています。安心してください、彼らは知識に基づいた推測であり、ほとんどの場合、一般的な慣行と一致しています。ただし、目を開いたまま、自分で考えてみてください。最後の手段として、安全のために「適切なクライアント」でgitリポジトリの物理バックアップを取ることができます