首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在git中卸载已删除的文件

在git中卸载已删除的文件
EN

Stack Overflow用户
提问于 2012-03-07 04:33:42
回答 7查看 251.2K关注 0票数 588

通常,要放弃对文件的更改,您将执行以下操作:

代码语言:javascript
复制
git checkout -- <file>

如果我想要放弃的更改是删除文件,该怎么办?上面的代码行会给出一个错误:

代码语言:javascript
复制
error: pathspec '<file>' did not match any file(s) known to git.

哪个命令可以在不撤消其他更改的情况下恢复单个文件?

加分点:另外,如果我想放弃的更改是添加文件怎么办?我也想知道如何取消这种更改。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-03-07 04:46:26

假设您想要撤消git rm <file>rm <file>的效果,然后是git add -A或类似的效果:

代码语言:javascript
复制
# this restores the file status in the index
git reset -- <file>
# then check out a copy from the index
git checkout -- <file>

要撤消git add <file>,上面的第一行就足够了,假设您还没有提交。

票数 928
EN

Stack Overflow用户

发布于 2012-03-07 04:37:34

这两个问题都在git status中得到了回答。

要取消转储添加新文件,请使用git rm --cached filename.ext

代码语言:javascript
复制
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#   new file:   test

要取消阶段删除文件,请使用git reset HEAD filename.ext

代码语言:javascript
复制
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    test

另一方面,git checkout --从不取消升级,它只会丢弃未升级的更改。

票数 65
EN

Stack Overflow用户

发布于 2017-08-10 22:19:06

如果已暂存并提交,则执行以下操作将重置该文件:

代码语言:javascript
复制
git reset COMMIT_HASH file_path
git checkout COMMIT_HASH file_path
git add file_path

这将适用于之前多次提交的删除。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9591407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档