gitで削除ファイルを戻す、タグからブランチを作る

  • Git

この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。

たまに使うけど忘れるgitコマンドを2つメモっておく。

削除したファイルをHEADの状態に戻す

作業中にうっかりファイルを消してしまった時、直前のコミット(HEAD)の状態に戻すコマンド。

git checkout HEAD deletedfile.txt

これで消したファイルが復元される。

ただし、ファイル名がブランチ名と衝突する可能性がゼロではないので、-- を挟んでおくと意図が明確になる。

git checkout HEAD -- deletedfile.txt

タグを指定してブランチを作る

特定のタグの時点からブランチを切りたい時。

git checkout -b CREATE_BRANCH_NAME refs/tags/TAGNAME

refs/tags/ を省略して TAGNAME だけでも大体は解決されるが、明示的に書いておいた方が安全。

余談

Git 2.23以降は checkout の役割が switch と restore に分離されている。同じことをやるなら書き方はこう。

# 削除ファイルの復元
git restore --source=HEAD -- deletedfile.txt
# タグからブランチ作成
git switch -c CREATE_BRANCH_NAME refs/tags/TAGNAME

checkout は昔からあるので通じやすいが、switch / restore の方が「ブランチ切り替え」と「ファイル復元」で役割が分かれてる分、読んだ時に意図が伝わりやすい。