[英]One Git command to retrieve all deleted files not staged and committed
在git
存儲庫中,我誤刪除了許多跟蹤文件(超過100個)。
這些刪除尚未上演和提交。
這是我執行git status
時看到的內容。 刪除的文件數超過100,因此我無法分別檢索每個文件。
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: some_tracked_file1.php
deleted: some_tracked_file2.php
deleted: some_tracked_file3.php
我如何撤消這些更改,從而用一個命令檢索所有已刪除的文件?
答案就在您引用的輸出中:
(使用“ git checkout-file ...”放棄工作目錄中的更改)
這將丟棄包括刪除在內的更改。
如果這些是列出的唯一更改,並且您希望擺脫所有更改,則可以執行以下操作:
git reset --hard
這將使您的工作目錄恢復到上次提交時的狀態,並丟棄所有本地或分階段的更改。
如果您不想恢復其他更改, 則必須使用checkout --
命令。 不過,您可以輕松編寫腳本,以僅在* nix上還原已刪除但未暫存的文件:
git status --porcelain | grep -E '^ D' | awk '{print $2}' | xargs git checkout --
我不知道Windows的等效形式如何,如果文件名包含空格,則會出現問題。
如果git reset --hard
不起作用,則可以使用git revert HEAD
還原到最后一次提交(如果文件在最后一次提交中)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.