Gitでmodifiedファイルのみ元に戻す方法【Untrackedファイルは保持】

Gitを使っていると、作業中に変更を加えたファイル(modified)がたくさん出てくることがあります。「一旦すべての変更を破棄して元に戻したい」という場面もあるかと思いますが、Untracked(未追跡)のファイルやディレクトリはそのまま残しておきたいというケースも多いでしょう。

本記事では、Gitでmodifiedファイルのみを安全に元に戻す方法について、具体的なコマンドとあわせて紹介します。


用語の整理

Gitのステータスには、主に以下の3種類の状態があります。

状態内容
Modified追跡中のファイルを編集した状態(=変更済み)
Staged(Indexed)git add 済みで、次のコミットに含まれる状態
UntrackedGitの管理下にない新しいファイル(まだaddしていない)

Modified ファイルをすべて元に戻すコマンド

git restore .

または、Gitの旧構文を使う場合は:

git checkout -- .

説明:

  • git restore .
    現在のディレクトリ配下にあるすべての modifiedなファイル の内容を、最新コミットの状態に戻します。
  • git checkout -- .
    同様に、変更されたファイルを元に戻す旧形式のコマンドです(Git 2.23より前はこちらが主流)。

💡どちらも untracked ファイルには影響しません。削除もされません。


ステージ済み(git add 済)のファイルも元に戻したい場合

ステージに上がってしまっている変更(git add 済み)も含めて、modified ファイルをすべて元に戻すには、以下の2段階が必要です:

git reset
git restore .

説明:

  • git reset:ステージから変更を取り消す(indexをリセット)
  • git restore .:作業ツリーの変更を破棄(元のファイル内容に戻す)

untracked ファイルを誤って消さないために

似たコマンドで注意が必要なのが git clean です。

git clean -f

このコマンドは untrackedなファイルを削除 します。慎重に使いましょう。
「本当に削除していいか確認したい」という場合は、-n オプションを使って事前確認できます。

git clean -n

まとめ

  • modified ファイルだけを元に戻すなら:
  git restore .
  • ステージ済みの変更も含めて元に戻すなら:
  git reset
  git restore .
  • git clean は untracked ファイルを削除するので注意

Gitの作業中は「どのファイルをどう扱うか」の判断が重要です。特にuntrackedファイルには手を加えずに、変更済みのファイルだけを元に戻したい場合は、git restore を基本に使うと安全で便利です。

コメント

タイトルとURLをコピーしました