Preview ng leksyon

ミスをなかったことに:restore、reset、revert ─ 正しい使い方と危険な落とし穴

面接でも実際の仕事でも最もよく求められるトピックの1つが、すでに行った変更の取り消し方です。このレクチャーでは、異なる「深さ」で変更を取り消す3つのツールを詳しく解説し、特に重要なポイントに焦点を当てます。reset --hardがチームワークを破壊してしまう具体的なシナリオや、その安全な代替手段であるrevertの活用法を紹介。良い解決策と悪い解決策を、実際の結果とともに検証します。

git restore git reset git revert
Ano ang matututunan mo sa leksyong ito
  • 作業ディレクトリ、ステージングエリア、コミット履歴など、あらゆる段階での変更を自信を持って取り消せるようになります。
  • resetとrevertの根本的な違いを理解し、どのような状況でどちらを使用すべきかが分かるようになります。
  • チームで共有するリポジトリで変更を取り消す際に初心者が陥りがちなミスを避けられるようになります。

Simula ng leksyon

Git restore: ファイルのための元に戻すボタン

  • Git restore ― コミットされていない変更の取り消し
  • エディタの『元に戻す』ボタンのような働き
  • 安全 ― コミット履歴を変更しない
  • ファイルを最後に保存された状態に戻す

誤ってファイルを保存してしまい、元の状態に戻したいと思ったことはありませんか? Git restoreは、まるで魔法の『元に戻す』ボタンのように、ファイルを最後にコミットされた状態に戻してくれます。他の取り消しコマンドと異なり、restoreはコミットされていない変更にのみ作用し、プロジェクトの履歴を一切変更しません。うっかりの編集を素早く元に戻したいときに、最初に試すべき安全なツールです。

ワーキングディレクトリの変更を元に戻す

  • git restore file.txt ― ファイルを最後のコミットの状態に戻す
  • ワーキングディレクトリのすべての変更を取り消す
  • 安全 ― エディタで変更を元に戻せる
  • 復元前にgit statusで状態を確認する

例えば、30分かけて設定ファイルを編集していたのに、方向性が間違っていることに気づいたとします。一つひとつ変更を手作業で元に戻す代わりに、git restore config.ymlと実行するだけで、ファイルは最後のコミットの状態に即座に戻ります。これは、ファイルを保存せずに閉じるようなものですが、確実に動作するバージョンに戻れるという保証があります。

# ファイルの復元デモ
$ echo "誤った変更" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status

インデックスからファイルを削除する

  • git restore --staged file.txt — ファイルをインデックスから削除
  • ワーキングディレクトリの変更は保持される
  • 注意: --staged を付けないと変更が失われる
  • 実行前には必ず git status を確認する

よくあるミスの1つが、誤って余分なファイルをインデックスに追加してしまうことです。たとえば、git add . を実行した際に設定の一時ファイルを追加してしまったとします。git restore --staged コマンドにファイル名 settings.tmp を指定すると、インデックスから安全に削除でき、ワーキングディレクトリの変更は保持されます。--staged フラグを付けないと作業内容が失われてしまうため、restore を実行する前には必ず git status で状態を確認してください。これでコミット前の変更の取り消し方がわかりました。では、すでにコミットされてしまったミスはどうすればいいでしょうか? そこで役立つのが git reset です。

# 誤ってファイルをインデックスに追加した場合
$ git add config.tmp
$ git status

# 変更を保持したままインデックスから削除
$ git restore --staged config.tmp
$ git status

# ワーキングディレクトリにファイルが残っていることを確認
$ ls -la config.tmp

Buong leksyon ay para sa subscription

24 pang slide sa buong bersyon.

Mabubuksan ang video, lahat ng slide, tala, pagsusulit, AI tutor, at interview pagkatapos mag-sign in at mag-subscribe.

Mag-sign in o magparehistro Mag-subscribe

Nilalaman ng leksyon

  1. Git restore: ファイルのための元に戻すボタン
  2. ワーキングディレクトリの変更を元に戻す
  3. インデックスからファイルを削除する
  4. Git reset: 履歴の巻き戻しの仕組み
  5. 安全な reset --soft: インデックスに変更を保持
  6. 標準的なreset --mixed: ワーキングディレクトリの変更
  7. 危険なreset --hard: 取り返しのつかない削除
  8. Reset: 3つのモード、1つのコマンド
  9. git reset --soft: 安全に履歴を書き換える
  10. --mixedと--hardを使うべきタイミング
  11. チェックリスト:どのresetを選ぶ?
  12. なぜ単に間違いを消せないのか?
  13. git revertの実践的な動作
  14. 複数のコミットを一度に取り消す
  15. リセット:ローカルでの履歴の書き換え
  16. リバート:安全に変更を元に戻す
  17. プッシュ時の挙動:リセット vs リバート
  18. reset --hard が危険な理由
  19. 変更を失う例
  20. データを復元する方法
  21. 共有ブランチでのリセットの危険性
  22. revertを使った安全な取り消し
  23. 正しい手順
  24. restore、reset、revertの使い分け
  25. 個人履歴と共有履歴の取り扱いルール
  26. ミス発生時のステップバイステップガイド
  27. まとめと課題: 変更のマスター

Mga artikulo tungkol sa araling ito

Lahat ng leksyon ng kurso

  1. はじめに:ゼロから始めるGit - 自信を持って使える開発者を目指して
  2. Gitはなぜ必要なのか?~採用で求められるスキル~
  3. インストールとセットアップ:Gitの初回起動準備
  4. 最初のリポジトリ: init、add、commit、そしてインデックスの魔法
  5. Git履歴の読み方: log, diff, showと過去の履歴を辿る
  6. ブランチ: コードの並行現実
  7. ミスをなかったことに:restore、reset、revert ─ 正しい使い方と危険な落とし穴
  8. GitHubとリモートリポジトリ: クラウドでのコード管理
  9. チームワーク:フォーク、フィーチャーブランチ、プルリクエスト
  10. マージコンフリクト:慌てずに理解して解決する
  11. 実践的なチーム開発におけるGitワークフロー:最適な選択方法
  12. 上級者向けツール:rebase、stash、cherry-pick、タグ
  13. 最終プロジェクト:実際のチーム開発をシミュレートする