如何在git repo中备份意外删除的文件? 分支主机上的 #您的分支比“原始/主分支”早1个提交。 # #要提交的更改: #(使用“git重置磁头…”取消分级) # #已删除:web/img/add-btn-bg.png #已删除:web/img/add-贡-button.png #已删除:web/img/bottom-shadow.png #已删除:web/img/database-line.png #删除:web/img/glyphicons-halflings-white.png #已删除:web/img/glyphicons-halflings.png #删除:web/img/header-logo.png #已删除:web/img/horizontal-line.png #删除:web/img/icons-btn.png #已删除:web/img/icons.png #已删除:web/img/line-bottom-menu.png #已删除:web/img/never-forget.png #已删除:web/img/贡-icon-line.png #已删除:web/img/uszatek.jpg #已删除:web/img/uszatek_106.jpg #已删除:web/img/uszatek_148.jpg #已删除:web/img/uszatek_32.jpg #已删除:web/img/uszatek_50.jpg # #未为提交而暂存的更改: #(使用“git add…”更新将提交的内容) #(使用“git签出--…”放弃工作目录中的更改) # #修改:web/app_dev.php # #未跟踪的文件: #(使用“git add…”包含在将提交的内容中) # #img/ #randomNames.csv #sampledb.tgz #监视/ #网络/资产/ #网络/上传/

如何在git repo中备份意外删除的文件? 分支主机上的 #您的分支比“原始/主分支”早1个提交。 # #要提交的更改: #(使用“git重置磁头…”取消分级) # #已删除:web/img/add-btn-bg.png #已删除:web/img/add-贡-button.png #已删除:web/img/bottom-shadow.png #已删除:web/img/database-line.png #删除:web/img/glyphicons-halflings-white.png #已删除:web/img/glyphicons-halflings.png #删除:web/img/header-logo.png #已删除:web/img/horizontal-line.png #删除:web/img/icons-btn.png #已删除:web/img/icons.png #已删除:web/img/line-bottom-menu.png #已删除:web/img/never-forget.png #已删除:web/img/贡-icon-line.png #已删除:web/img/uszatek.jpg #已删除:web/img/uszatek_106.jpg #已删除:web/img/uszatek_148.jpg #已删除:web/img/uszatek_32.jpg #已删除:web/img/uszatek_50.jpg # #未为提交而暂存的更改: #(使用“git add…”更新将提交的内容) #(使用“git签出--…”放弃工作目录中的更改) # #修改:web/app_dev.php # #未跟踪的文件: #(使用“git add…”包含在将提交的内容中) # #img/ #randomNames.csv #sampledb.tgz #监视/ #网络/资产/ #网络/上传/,git,Git,我需要从“要提交的更改”返回文件。如何做?如果您尚未提交,下面是如何取回文件(以web/img/glyph/halflings white.png为例): 这将取消删除操作,然后还原文件。您是否确实阅读了发布的内容?Git正告诉您需要做什么:(使用“Git reset HEAD…”取消Stage)然后是(使用“Git checkout…”放弃工作目录中的更改)。我知道,但我写了“Git reset HEAD web/img/*”,它不起作用,所以我想我必须做些别的事情。抱歉..如果您已经删除了w

我需要从“要提交的更改”返回文件。如何做?

如果您尚未提交,下面是如何取回文件(以
web/img/glyph/halflings white.png
为例):


这将取消删除操作,然后还原文件。

您是否确实阅读了发布的内容?Git正告诉您需要做什么:
(使用“Git reset HEAD…”取消Stage)
然后是
(使用“Git checkout…”放弃工作目录中的更改)
。我知道,但我写了“Git reset HEAD web/img/*”,它不起作用,所以我想我必须做些别的事情。抱歉..如果您已经删除了
web/img/*
,那么运行
git reset HEAD web/img/*
不会做任何事情,因为shell在调用
git
之前尝试展开
web/img/*
,失败,因此会传递文本字符串
web/img/*
,而
git
将尝试匹配文本文件名。这很痛苦,但是你必须为每个单独的文件运行
git reset HEAD web/imgadd btn bg.png
等等(或者解析
git status
来生成文件列表(类似于
git reset HEAD$(git status | awk'/deleted:/{print$NF}')
)(未测试)。谢谢你的回答……但我告诉你为什么没有这样做“git reset HEAD web/img/*”对我有用吗?不起作用的原因是“*”是由bash计算的,而不是git。因为没有什么可扩展的(您删除了文件),bash只是将其直接传递给git。git不进行通配符扩展。
 On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    web/img/add-btn-bg.png
#       deleted:    web/img/add-tribute-button.png
#       deleted:    web/img/bottom-shadow.png
#       deleted:    web/img/database-line.png
#       deleted:    web/img/glyphicons-halflings-white.png
#       deleted:    web/img/glyphicons-halflings.png
#       deleted:    web/img/header-logo.png
#       deleted:    web/img/horizontal-line.png
#       deleted:    web/img/icons-btn.png
#       deleted:    web/img/icons.png
#       deleted:    web/img/line-bottom-menu.png
#       deleted:    web/img/never-forget.png
#       deleted:    web/img/tribute-icon-line.png
#       deleted:    web/img/uszatek.jpg
#       deleted:    web/img/uszatek_106.jpg
#       deleted:    web/img/uszatek_148.jpg
#       deleted:    web/img/uszatek_32.jpg
#       deleted:    web/img/uszatek_50.jpg
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   web/app_dev.php
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       img/
#       randomNames.csv
#       sampledb.tgz
#       watch/
#       web/assets/
#       web/uploads/
git reset HEAD web/img/glyphicons-halflings-white.png
git checkout -f web/img/glyphicons-halflings-white.png