我在 Visual Studio Devops 中有一个项目,我已经连续几个月每天检查代码。我需要稳定截止日期后的项目特定版本,但不知道如何从该日期起检查所有文件。
如何检出过去特定时间点的项目中的所有文件?
答案1
首先,不要从日期的角度来考虑 git,而要从提交的角度来考虑。
在继续之前,我假设您熟悉git log
输出。如果不熟悉,请复习一下:它列出了存储库中的所有提交,从最近的提交开始。列出的信息是:提交哈希码 (SHA)、作者、日期和消息。但是,git log
可以自定义以帮助您解决问题。
例如,假设您感兴趣的日期是 2019 年 6 月 20 日。
要列出该日期的所有提交,请运行:
git log --since="jun 20 2019" --until="jun 21 2019"
从这里开始,有三种可能的情况:
- 列表中只有一个提交。太棒了!这就是你要找的提交。转到解决方案
- 列表中有多个提交。好吧……我帮不了你,你需要检查它们并决定哪一个是你感兴趣的。如果你对日期非常具体,只需选择列表中最近的一个,然后转到解决方案。
- 列表中没有提交。在特定日期没有提交。但是如果你想知道该日期的源状态,这意味着你对发生的提交感兴趣前该日期。使用 扩大搜索范围。或者,您可以通过从选项中省略 来
git log --since="jun 19 2019" --until="jun 21 2019"
仅为命令提供上限。无论哪种方式,选择您感兴趣的提交,然后转到log
--since="jun 19 2019"
解决方案。
解决方案:
复制所选提交的哈希码 (SHA),然后运行git checkout <SHA>
- 这会将您的存储库带到与该提交相对应的状态。您将处于所谓的“分离头”状态,这听起来很糟糕,但无需担心。如果您只是在探索/构建,但没有对要保存的代码进行任何更改,那么您没问题。如果您想返回,请运行git checkout <branch you want to go back to>
。
如果您想从那里分支,请运行git checkout -b <name of your new branch>
。
如果您确定要进行修改,则可以将前两个命令合并到这一行中,这将根据您要查找的提交创建一个新的分支:git checkout -b <name of your new branch> <SHA>
。