🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

1回答

1873閲覧

rm -rf ですべてのファイルを削除してしまったので復元したい

Takumim

総合スコア12

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

0グッド

0クリップ

投稿2021/03/05 09:14

前提・実現したいこと

rm -rf で削除してしまった複数のディレクトリ、ファイルを復元したい

発生している問題

特定のファイルのみを削除しようとしましたが、

rm -rf backend/*

と * を誤って使用してしまった為、すべてのディレクトリ、ファイルが削除されてしまいました。

試したこと

https://www.sfware.com/ja-jp/deleted-file-recovery/jp-recover-files-deleted-with-rm-mac.html
こちらのサービスがrmコマンドで消したデータを復元できるサービスみたいなのですが、使用するか迷っています。

補足情報(FW/ツールのバージョンなど)

macOS Big Sur
バージョン 11.2.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/03/05 09:19

Gitで記録していれば、適切な箇所をcheckoutするだけではないでしょうか?
Takumim

2021/03/05 09:28

回答頂きましてありがとうございます。 checkoutする事でファイルを復元できるのでしょうか、、? checkoutはブランチの切り替えで使用するという認識だったのですが、、
maisumakun

2021/03/05 09:33

そうですね、「ファイルを削除した」というのもGitに記録できるものですので、それ以前のコミットを取り出せばもちろんファイルは残っています。
hoshi-takanori

2021/03/05 09:39

git commit または git add したものは復元できます。(.git ディレクトリが残っていれば。) とりあえず落ち着いて git status で状況を確認しましょう。
Takumim

2021/03/05 09:41

なるほど、という事は以前のコミットを取り出した場合はそれ以降の変更した履歴は残っていないという事でしょうか。以前のコミットから今回の rmコマンドを実行するまでの間にかなり変更を加えたので、、
Takumim

2021/03/05 09:44

hoshi-takanoriさん 回答ありがとうございます。 git status で確認したところ、deletedと赤い文字がずらっと並んでいる状況です。 これをgit add した後、取り消しのコマンドを実行するという事でしょうか。
hoshi-takanori

2021/03/05 09:56

git add するとステージング領域に削除したことを記録するので、git add は不要です。 紛らわしくてごめんなさい。 git status の結果、赤い字の deleted: backend/〜 というのがずらっと並んでるんだと思いますが、 backend ディレクトリの中身をまとめて元に戻すには git restore backend でいけると思います。
Takumim

2021/03/05 10:01

hoshi-takanoriさん git restore backendと入力したところ、backend以下が元通りになりました! 本当に助かりました!ありがとうございます!!
hoshi-takanori

2021/03/05 10:09 編集

復活してよかったです。 豆知識ですが、backend ブランチがなければ maisumakun さんのおっしゃる通り git checkout backend でも大丈夫ですが、git checkout にはブランチの切り替えとファイルの復元の両方の意味があって紛らわしいということで、最近 git switch と git restore が導入されました。(自分もつい git checkout を使っていしまいますが…。) https://qiita.com/yukibear/items/4f88a5c0e4b1801ee952
Takumim

2021/03/05 10:45

hoshi-takanoriさん 助かりました。 そんな経緯があったんですね!勉強になります!
guest

回答1

0

ベストアンサー

質問文からは分かりませんがタグにgitとあるので、gitの作業ディレクトリのファイルを消したという話なら、もし「.git」フォルダが残っているなら、以下のコマンドで最後にcloneまたはcommitした内容を取り出せると思います。

git checkout HEAD -- .

投稿2021/03/05 15:39

msiz07

総合スコア172

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問