簡體   English   中英

一個Git命令來檢索所有未暫存和未提交的已刪除文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM