導入
Gitを使っていると、「ブランチを切り替えたいだけなのに、間違えてファイルを復元してしまった」「どちらの目的でcheckoutを使えばいいのか迷う」といった経験はありませんか?従来のgit checkoutコマンドは多機能すぎて、ヒューマンエラーの原因になりがちでした。そこで登場したのが、Git 2.23以降で導入されたgit switchとgit restoreです。これらを使うことで「ブランチ操作」と「ファイル操作」を完全に分離し、より安全で直感的なGit運用が可能になります。
基礎知識
git checkoutは、ブランチの切り替え(-bなど)と、ファイルの変更取り消し(–
・git switch: ブランチの切り替え(作成・移動)に特化したコマンドです。
・git restore: 作業ディレクトリやステージングエリアにあるファイルを、過去の状態に戻すことに特化したコマンドです。
これらは「モダンGitコマンド」と呼ばれ、操作の意図がコマンド名から明確に伝わるため、チーム開発でのミスを劇的に減らすことができます。
実装/解決策
具体的な操作は以下の通りです。
1. ブランチを切り替える
新しくブランチを作成して移動する場合は、git switch -c <ブランチ名> と入力します。既存のブランチへ移動する際は、git switch <ブランチ名> となります。
2. ファイルの変更を取り消す
作業中のファイルを直前のコミット状態に戻したい場合は、git restore <ファイル名> を使います。また、ステージング(add)してしまった変更をアンステージしたい場合は、git restore –staged <ファイル名> を使用します。
サンプルプログラム
以下のコマンド群は、開発現場で頻繁に行う操作をまとめたものです。コピー&ペーストして、練習用リポジトリで試してみてください。
1. 新しいブランチを作成して切り替える
git switch -c feature/new-page
2. 作業中のファイルを修正した後に、元の状態へ戻す(変更の破棄)
git restore index.html
3. 誤ってファイルをステージしてしまった場合、ステージングから外す
git add index.html
git restore –staged index.html
4. メインブランチに戻る
git switch main
応用・注意点
現場で活用する際のポイントとして、git restoreは「作業中の変更を消す」コマンドであるという点に注意してください。一度実行すると、保存していない変更内容は元に戻せません。重要な変更がある場合は、必ずコミットやgit stashでの退避を行ってから実行するようにしましょう。また、チームメンバーにこれらのコマンドを共有する際は、.gitconfigのエイリアス設定などを活用して、コマンド入力の効率化を図るのもおすすめです。コマンドの意図が明確になることで、Gitの操作ログ(git reflog)を確認する際にも、何をしたかったのかが追いやすくなります。

コメント