87 如何在git中检出某个文件的特定版本? 我在邮件列表中找到了这封邮件,其中说: $ git checkout HEAD~43 Makefile $ git reset Makefile 但是我不知道如何找出“ HEAD〜43”,如果执行a git log aFile,如何找出应该使用的“ HEAD〜43”? 为什么我需要git reset为该文件运行?它有什么作用? git — n179911 source “ git reset <提交> <文件>”与“ git checkout <提交> <文件>”完全相同。 — JakubNarębski09年 2 如果您的问题是关于HEAD〜43语法(记录在git-rev-parse中),请询问此问题,而不是与您不知道答案的无关问题。“ — HEAD〜45 根据lt.kernel.org/pub/software/scm/git/docs/v1.6.0.6/…和lt.kernel.org/pub/software/scm/git/docs/v1.6.0.6/git- reset.html,“ git reset <commit> <file>”与“ git checkout <commit> <file>”不完全相同:“ git reset <commit> <file>”还原索引中的<file>从<commit>中删除而不在工作树中触摸<file>,但是“ git checkout <commit> <file>”从<commit>更新<file>的索引,然后在工作树中更新<file>。 — yoda 2010年 2 如果以下任何答案回答了您的问题,即Stack Overflow的工作方式,则可以通过单击旁边的对号来“接受”答案;细节在这里。但前提是您的问题得到回答;如果不是,请考虑为问题添加更多详细信息和/或对答案进行评论,以说明尚不清楚的内容(尚未)。 — TJ Crowder 1 使用Git — 1615903 '17
104 您知道文件属于什么提交(即特定修订)吗?然后做: git checkout <commit> <file> 另一个命令: git checkout HEAD~N <file> 用于想要从某个范围返回文件的版本时(出于怀旧之情)。 — 假密码猴子拉希德 source
19 HEAD~43只是树状结构,因此您可以使用哈希或标签。您必须使用分隔树名和文件名--,否则将其视为文件名。例如。 git checkout v0.45 -- filename git checkout HEAD^ -- filename git checkout 16bb1a4eeaa9 -- filename — 下坡 source
2 HEAD~43指文件的提交(版本)。取而代之的是,您可以使用git log通过对文件执行操作获得的提交哈希。如果只需要该文件,则无需在该文件上运行git reset。仅在要将文件转发到当前HEAD时才需要。 — 吉姆·普尔斯 source