【问题标题】:Git: How to copy all files ever deleted to a certain directory?Git:如何将曾经删除的所有文件复制到某个目录?
【发布时间】:2015-08-18 00:39:39
【问题描述】:

我想获取所有曾经被删除的文件,并将它们复制到另一个目录X

我得到了通过git log --all --pretty=format:" " --name-only | sort -u 删除的所有文件的列表,但这是我能做到的。

注意:

  • 我不想对我的工作副本进行任何更改。我想将删除的文件恢复到目录XX 与我的仓库位于完全不同的位置。
  • 我希望恢复的文件已提交、删除,并且删除已提交。所以 git 已经备份了它们。
  • 如果有帮助,我正在尝试查找我曾经添加的图像。我既没有文件名,也没有添加/删除它的提交。所以我的计划是将所有已删除的文件恢复到不同的目录,然后手动检查图像(大约 50 个)。
  • 我是新手,在 windows 上使用 Git。

谢谢:)

【问题讨论】:

    标签: windows git restore


    【解决方案1】:

    要查找已删除的文件:git log --diff-filter=D --summary。解析该输出以获取commitId 和文件名,然后从commitId^ 获取该文件版本并复制到目录(git show hash^:fileName >copyOfFileName),名为copyOfFileName 的文件将包含您的文件内容。使用 git 日志中显示的文件名的完整路径。

    【讨论】:

    • 很高兴您的回复。问题是,我已经知道该怎么做,但我不知道该怎么做。如果你也能给我命令,我将不胜感激。
    • 命令就在响应中。您是否尝试过输入它们(git log --diff-filter=D --summary 和 git show hash^:fileName)?
    • 这是我尝试过的:(太长无法在此处发布。markdownshare.com/view/795d4e3a-4849-4761-86b5-becf21a32778)如果我误解了您,我深表歉意。你能告诉我更多细节吗?
    • 你可以试试完整的文件名路径,anki/MainProfile/collection.media/latex-0eb5db190634622e42db3df19c9b05a1fb9a780d.png吗?
    • 我已经做到了,不是吗? (尝试了文件名和相对路径名)。我也尝试了完整的路径名,得到了同样的错误。
    猜你喜欢
    • 2014-10-27
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2013-01-23
    • 2021-07-06
    • 1970-01-01
    相关资源
    最近更新 更多