2010-10-04 69 views
3

我正在处理一个文件,其中我当前的提交结果很糟糕,我想回到之前提交的特定文件提交?如何返回到使用git的文件的早期提交?

我没有它看起来像搜索没有人回答了类似的问题(如何回滚文件更改在以前的git的承诺)....

希望一个简单的答案?

回答

3
git checkout <commit-id> file(s) 

它会轻易覆盖,所以要小心你的文件通配符,它​​可以一次覆盖多个文件。如需帮助,您可以用想要的文件作为过滤器检查出git log消息:

git log <file> 

将只显示与搜索涉及的<file>日志信息的提交。

+0

是的,谢谢,我想要一个特定的文件,所以它听起来像我使用日志(或者我想通过我的托管存储库),并得到那个大的长字符串和文件的名称....谢谢 – Angela 2010-10-05 16:12:21

3

git reset <commit hash> <filename>

+0

你或许应该提到,这需要遵循'git add '和'git commmit',假设结果是所期望的。 – ebneter 2010-10-05 01:43:09

+0

她可能想要'git checkout',按照@ progo的回答。 – 2010-10-05 04:09:58

+0

@Aristotle,你是对的... @ progo的回答比较好。 – dgnorton 2010-10-05 11:52:20

0

嗯,这很可能混淆你的主要的是git的跟踪整个存储库,而不是一个文件的complate版本。因此,您需要做的是确定哪个版本的存储库具有您正在查找的文件的版本,然后回滚到该版本。

如果你只是想要这个旧版本的文件,但希望在此期间存储库采取的所有其他更改,你必须做更多的工作。

对于像回滚这样的复杂操作,我通常会建议使用其中一个GUI工具(比如git gui),因为它们可以让你更好地形象化你准备做的事情。

相关问题