リポジトリで作業していたところ、ローカルファイルに変更があったことに気付きました。もう変更は必要なかったので、新しいコピーをチェックアウトすればいいと考えて、ファイルを削除しました。Gitで同じことをしたかったのです。
svn up .
使ってもgit pull
ダメでした。検索してみると、誰かが推奨しているサイトを見つけました。
git checkout HEAD^ src/
(src
は削除されたファイルを含むディレクトリです)。
頭が外れていることに気づきました。それが何なのか全く分かりません。どうすれば元に戻せますか?
ベストアンサー1
ヘッドが切り離されたということは、ブランチ上にいないこと、履歴内の単一のコミット (この場合は HEAD の前のコミット、つまり HEAD^) をチェックアウトしたことを意味します。
切り離されたHEADに関連付けられた変更を保持したい場合は
- 実行
git switch -c tmp
- これにより、 という新しいブランチに変更が保存されますtmp
。 - 走る
git switch master
- に加えた変更を に組み込む場合は
master
、ブランチgit merge tmp
から を実行します。を実行した後は、 ブランチmaster
にいるはずです。master
git switch master
切り離されたHEADに関連付けられた変更を削除する場合
チェックアウトする必要があるのは、現在いるブランチだけです。例:
git switch master
次回ファイルを変更し、インデックス内の状態に復元したい場合は、まずファイルを削除せずに、
git restore -- path/to/foo
これにより、ファイル foo がインデックス内の状態に復元されます。