首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在git中从旧提交恢复文件

在git中从旧提交恢复文件
EN

Stack Overflow用户
提问于 2011-07-08 19:53:10
回答 2查看 100.9K关注 0票数 225

我有一个几周前做过的旧承诺。我只想从该提交中恢复单个文件。我做什么好?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-08 19:57:38

git checkout 'master@{7 days ago}' -- path/to/file.txt

这不会改变HEAD,它只会覆盖本地文件path/to/file.txt

有关可能的修订规范,请参阅man git-rev-parse (当然,一个简单的散列(如dd9bacb)就可以做得很好)

不要忘记提交更改(在审查之后...)

票数 261
EN

Stack Overflow用户

发布于 2019-08-27 22:31:23

所有答案都提到了git checkout <tree-ish> -- <pathspec>。在GitV2.23.0中,有一个新的git restore方法,它应该承担git checkout所负责的一部分内容。查看github blog上的更改亮点。

此命令的默认行为是使用来自source参数的内容恢复工作树的状态(在本例中为提交散列)。

假设提交散列为abcdef,该命令将如下所示:

git restore --source=abcdef file_name

这(默认情况下)会将其放入工作树中。如果您希望将更改直接放入索引中,以便可以立即提交:

git restore --source=abcdef --worktree --staged file_name

或者使用简短的选项名称:

git restore -s=abcdef -W -S file_name
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6624036

复制
相关文章

相似问题

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