gitでチェックアウトを元に戻すにはどうすればよいですか?


134

ローカルのgitリポジトリから以前のコミットをチェックアウトしました。何も変更していません。見ていました。今、最新のコミットに戻りたいのですが、どうすればよいですか?

チェックアウトに使用した正確なコマンド:

git checkout e5dff6b3c5d704f9b598de46551355d18235ac08

これでgit logと入力すると、上部にこのチェックアウトされたコミットが表示されますが、それ以降のコミットは表示されません。それらを誤って削除しましたか?


私はあなたがそれを間違った方法で見ていると思います:個別にコミットするのではなく、ブランチ(ヘッド)にチェックアウトします
Z. Khullah

回答:


183

まずこれを試してください:

git checkout master

(とは異なるブランチにいる場合はmaster、代わりにそこでブランチ名を使用してください。)

それでもうまくいかない場合は、お試しください...

単一ファイルの場合:

git checkout HEAD /path/to/file

リポジトリ全体の作業用コピー:

git reset --hard HEAD

それでもうまくいかない場合は、reflogで古いヘッドのSHAを見つけて、それにリセットできます。

git reflog
git reset --hard <sha from reflog>

HEAD 現在のブランチの最新のコミットを常に指す名前です。


しかし、どのようにしてコミットを表示して、どのSHA1ハッシュにそれを与えるかを決定するのですか
Yuval Karmi、2010

1
あなたはしません-あなたはHEAD、逐語的にタイプします。GitはすでにそのHEAD意味を知っています。ただし、本当にSHA1を使用git logしたい場合は、を使用してコミットログを確認できます。
2010

実行git reset --hard HEADすると、チェックアウトしたコミットに戻ります...チェックアウトに使用した正確なコマンドを投稿します。
Yuval Karmi、2010

(もししている好奇心の場合は、次のように入力することができgit rev-parse HEAD、それはあなたの最新のコミットに対応するSHA1を与えることをしてご覧ください。)
アンバー

上記の2つの新しいオプションを追加しました。それらを試してください(順番に-まずチェックアウトバージョンを試してください)。
2010


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.