ファイルの 復元と取消

Git入門

George Boorman

Curriculum Manager, DataCamp

ミス発生

リポジトリ内の4つのファイルのうち、3つがステージングエリアに追加され、1つがコミットされている: report.md、mental health survey.csv、summary statistics.csv

Git入門

ファイルを元に戻す

  • コミット前の状態にリポジトリを復元する

  • git revert

    • 以前のバージョンを復元し、コミットを作成する
    • 指定されたコミットで更新されたすべてのファイルが復元される
    • a845edcbebe93178など
    • HEADHEAD~1など
git revert HEAD
Git入門

ファイルを元に戻す

git revert HEAD

テキストエディタでコミットが表示されている

  • 保存: Ctrl + O、次に Enter
  • 終了: Ctrl + X
Git入門

ファイルを元に戻す

[main 7d11f79] Revert "Adding fresh data for the survey."
 Date: Tue Jul 30 14:17:56 2024 +0000
 1 file changed, 3 deletions(-)
Git入門

git revertのフラグ

  • テキストエディタを開かずに実行したい場合
    git revert --no-edit HEAD
    
  • コミットせずに元に戻したい場合(ファイルをステージングエリアに戻す)
    git revert -n HEAD
    
Git入門

1つのファイルを元に戻す

  • git revertは個別ファイルではなくコミットに対して機能する

  • 1つのファイルを元に戻すには:

    • git checkout
    • コミットハッシュまたはHEAD構文を使用する
git checkout HEAD~1 -- report.md
Git入門

git checkoutの結果

git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)

        modified:   report.md
Git入門

コミットする方法

git commit -m "Checkout previous version of report.md"
[main daa6c87] Checkout previous version of report.md
 1 file changed, 1 deletion(-)
Git入門

ファイルをアンステージする

リポジトリ内の4つのファイルのうち、3つがステージングエリアに追加されている: report.md、mental health survey.csv、summary statistics.csv

Git入門

ファイルをレポジトリに戻す

Summary statisticsがステージングエリアからリポジトリに戻されている

Git入門

1つのファイルをレポジトリに戻す

  • 1つのファイルをアンステージングするには:
git restore --staged summary_statistics.csv
  • ファイルを編集する
git add summary_statistics.csv
git commit -m "Adding age summary statistics"
Git入門

すべてのファイルをレポジトリに戻す

  • すべてのファイルをアンステージするには:
git restore --staged
Git入門

まとめ

コマンド 結果
git revert HEAD 指定したコミットのすべてのファイルを元に戻す
git revert HEAD --no-edit テキストエディタを開かずに元に戻す
git revert HEAD -n 新しいコミットを作成せずに元に戻す
git checkout HEAD~1 -- report.md 前回のコミットから1つのファイルを元に戻す
git restore --staged report.md ステージングエリアから1つのファイルを削除する
git restore --staged ステージングエリアからすべてのファイルを削除する
Git入門

練習しましょう!

Git入門

Preparing Video For Download...