Gitは開発の現場で欠かせないツールですが、操作に慣れるまでは戸惑うことも多いですよね。本記事では、変更を元に戻す基本的な方法を解説します。作業中に「もう元の状態に戻したい!」と思ったときの対処法を学びましょう。


1. ファイルへの変更を取り消す方法

「編集したけど、もう元に戻したい」という場面では、git checkoutコマンドを使います。このコマンドを使うと、ステージ(インデックス)にある状態を基に変更を取り消すことができます。

コマンドの使い方

  • 特定のファイルを取り消す: git checkout -- ファイル名
  • ディレクトリ単位で取り消す: git checkout -- ディレクトリ名/
  • 全ての変更を一括で取り消す: git checkout -- .

注意:
--はGitに「ファイルやディレクトリ名」を指定していると伝えるためのものです。これによりブランチ名との混同を防ぎます。


実際の操作手順

  1. 編集後の状態を確認 git status 例: index.htmlが変更されていると表示されます。
  2. 変更を取り消す git checkout -- index.html
  3. 取り消し後を確認 git status 変更が取り消されたことを確認できます。

内部で何が起きている?

Gitは「ステージ」の情報を取得し、それをワークツリー(作業ディレクトリ)に反映することで変更を取り消します。


2. ステージした変更を取り消す方法

変更をステージに追加したけど「間違えて追加してしまった!」という場合、git resetコマンドを使用します。このコマンドは、ステージに追加された変更を取り消します。

コマンドの使い方

  • 特定のファイルを取り消す: git reset HEAD ファイル名
  • ディレクトリ単位で取り消す: git reset HEAD ディレクトリ名/
  • 全ての変更を一括で取り消す: git reset HEAD .

注意点

  • git resetはステージから変更を取り消すだけで、ワークツリー(ローカルファイル)の変更には影響を与えません。ワークツリーも元に戻したい場合は、さらにgit checkoutを実行してください。

操作手順

  1. 変更を確認 git status 例: index.htmlがステージされていることを確認。
  2. ステージした変更を取り消す git reset HEAD index.html
  3. 変更がワークツリーに戻ったか確認 git status

3. 直前のコミットをやり直す方法

「コミットしたけど、修正漏れやコミットメッセージを修正したい!」そんなときは、git commit --amendを使いましょう。

コマンドの使い方

  • 修正漏れをコミットに追加する:
    1. ファイルを修正
    2. ステージに追加: git add ファイル名
    3. コミットを修正: git commit --amend

注意点

  • リモートにプッシュしたコミットを修正しないこと!
    修正すると履歴の整合性が崩れ、他の開発者に影響を与える可能性があります。

実際の操作例

  1. 修正後のファイルをステージに追加 git add index.html
  2. コミットを修正 git commit --amend
  3. コミットメッセージを書き直す場合
    エディターが開いたら、メッセージを編集して保存します。

まとめ

Gitで変更を元に戻す操作は以下の3つに分類されます。

状況コマンド対象
ワークツリーの変更を取り消すgit checkout --ファイル/ディレクトリ/全体
ステージの変更を取り消すgit reset HEADファイル/ディレクトリ/全体
直前のコミットをやり直すgit commit --amendコミット内容、またはメッセージ

これらのコマンドを駆使することで、より柔軟かつ正確にGit操作を進められるようになります。次回は、さらに詳細な変更操作について解説します!


コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です