第5回 | git restore で変更を戻す方法と Git 基本ワークフローの総まとめ | 残す流れと戻す流れをやさしく整理する | UNIX Cafe

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第5回 | git restore で変更を戻す方法と Git 基本ワークフローの総まとめ | 残す流れと戻す流れをやさしく整理する|UNIX Cafe

Git 入門 | 第5回

Git を使っていると、「試しに直してみたけれど、やっぱり元に戻したい」という場面が必ず出てきます。変更を残す方法と同じくらい、戻す方法を知っておくことが大切です。

今回はシリーズの最終回として、git restore で変更を戻す基本を見たあと、これまで学んできた流れを通して整理します。個別のコマンドがひとつの流れとしてつながると、Git の使い方がぐっと安定してきます。

動画で流れを先に見たい方は、UNIX Cafe の YouTube もあわせてどうぞ。記事と同じく、初心者向けのやさしい流れで、ターミナルの最初の一歩を確認できます。

📝 この記事で学べること

  • git restore が役立つ場面と使い方
  • 戻す前に確認する流れ
  • --stagedadd を取り消す方法
  • 初心者がつまずきやすいポイントと対処
  • 残す流れと戻す流れを通して見た Git の基本ワークフロー
目次

git restore | git add 前の変更を元に戻す

今回扱うのは、まだ git add していない作業中の変更を元に戻したい場面です。編集してみたけれどやっぱりやめたい、余計な変更が混ざってしまった、そういうときに git restore が使えます。

git restore は、作業ツリーの変更を、最後に commit した状態へ戻すコマンドです。ここでは、これまでの練習で使ってきた memo.txt を例に見ていきます。

また、すでに git add した変更をステージから外したい場合は、git restore --staged <ファイル名> を使います

git restore memo.txt

このコマンドを実行すると、指定したファイルが最後に commit した状態へ戻ります。編集した内容は消えるので、「本当に戻してよいか」を確認してから使うことが大切です。実行後は git statusgit diff で変更が消えたことを確認しておきましょう。

戻す前に確認する流れ

Git では「見てから進む」という考え方が一貫して大切です。戻すときも例外ではありません。いきなり git restore を実行するのではなく、まず今の状態を確認してから判断する習慣をつけましょう。

  1. git status で変更があるファイルを確認する
  2. git diff で変更の中身を見る
  3. 本当に戻してよいと判断してから git restore する
git status
git diff
git restore memo.txt

この 3 ステップを踏むだけで、必要な変更まで消してしまうミスをかなり防げます。

git restore –staged | add を取り消す

git add してしまったあとに「やっぱりこのファイルは今回の commit に含めたくない」と気づいた場合は、--staged をつけて add を取り消せます。

git restore --staged memo.txt

これはファイルの内容を変えるわけではありません。「記録候補から外す」だけの操作です。ファイルの編集内容はそのまま残ります。

コマンド何をするかファイルの中身
git restore ファイル名編集を取り消して元に戻す変更前の状態に戻る
git restore --staged ファイル名add を取り消す編集内容はそのまま残る

初心者がつまずきやすいポイント

戻したら編集内容が消えた

git restore は元に戻す操作なので、それ以降に加えた編集は消えます。この操作は取り消せません。実行前に git diff で中身を確認し、本当に戻してよいかを判断してから使いましょう。

add を取り消したいのに内容まで消えた

–staged をつけ忘れて git restore ファイル名 を実行すると、編集内容ごと消えてしまいます。add だけを取り消したい場合は git restore –staged ファイル名 を使います。迷ったときは先に git status で状態を確認してから判断しましょう。

commit 済みの変更は git restore では戻せない

今回扱った git restore は、まだ commit していない変更を対象にしています。commit 済みの変更を戻す方法は別のコマンドになりますが、入門段階ではまずここだけ覚えれば十分です。

Git の基本ワークフローを通して見る

ここまでのシリーズで学んできたコマンドを、実際の作業の流れとしてつなげて整理します。Git の操作は大きく「残す流れ」と「戻す流れ」の 2 つに分けて考えると分かりやすいです。

残す流れ

git status
git diff
git add memo.txt
git diff --staged
git commit -m "メッセージ"
git log --oneline

戻す流れ

git status
git diff
git restore memo.txt

どちらの流れも、最初に git status で状態を確認するところから始まります。迷ったときはまずここへ戻る、という習慣がそのまま両方の流れの入口になっています。

各コマンドの役割をまとめる

コマンド役割使うタイミング
git initリポジトリを作る最初に一度だけ
git status全体の状態を見る何かする前・迷ったとき
git diff変更の中身を見るadd の前
git add今回残したい変更を選ぶcommit の前
git diff --staged記録予定の内容を確認するcommit の直前
git commit履歴として残す内容を確認したあと
git log履歴をたどる記録後・振り返るとき
git restore未記録の変更を戻す編集をやり直したいとき

この表を頭に入れておくと、Git で迷ったときに「今はどの段階にいるのか」を考えやすくなります。

シリーズを終えて

このシリーズでは、Git を難しいコマンドの集まりとしてではなく、「変更を安全に扱うための流れ」として見ることを大切にしてきました。

状態を見る。中身を確認する。必要な変更を選ぶ。記録する。見返す。必要なら戻す。この流れがつかめれば、Git 入門としての土台はできています。vi で直し、Git で残す。このつながりが見えてくると、日々の作業はかなり安定してきます。

まずは小さな変更で何度か試しながら、流れに慣れていきましょう。

もう一度、はじめからゆっくりと

ここまで読み進めてきた今、もう一度最初の回に戻ってみてください。

はじめは少し手探りに感じた操作も、きっと違った景色に見えてくるはずです。

Git は、一度で身につけるものではなく、何度か流れを行き来しながら、少しずつ手に馴染んでいく道具です。

最初の一歩に戻ることは、後退ではありません。それは、理解を確かなものにするための大切な一歩です。

👉 もう一度、第1回から読み直してみましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

目次