获得旧版git repo的副本

时间:2017-02-13 15:02:36

标签: git

我们有一个不断发展的git repo。我想将回购的当前状态与几个月前达到的里程碑进行比较。如何获得回购旧状态的本地副本,而不会对回购的当前状态造成任何伤害/损害?

我看到一些看似有前途的选项(“结账”,“重置当前分支”),但我要小心,不要意外地为每个人恢复主分支。

2 个答案:

答案 0 :(得分:0)

您可以通过签出较旧的提交轻松检查仓库的旧状态。每个提交都带有一个可以使用的提交哈希。例如,如果您执行git log,您将获得回购中所有提交的列表。通过执行git checkout [commit hash]检查您想要的提交,其中[commit hash]是所需的哈希值。

为了回到最近的提交,请执行git checkout master

答案 1 :(得分:0)

似乎对git的运作方式存在一些误解......

首先是好消息:只要你使用克隆(你几乎肯定都是),你就不太可能为所有人改变主分支。所有你需要做的就是确保你不这样做:不要使用push main。您可以对存储库的克隆执行任何操作,这无关紧要。如果你真的担心,那么克隆回购并在那个克隆git remote remove origin中,现在你真的不得不改变任何关于原始回购的方式

但是现在要恢复到早期状态并进行比较......目前还不是很清楚你要做什么。

您说将存储库还原为较旧的状态;在大多数情况下,随着回购的发展,你只需要添加对象并更新分支引用。所以,如果你的意思是你存档了git repo(包括数据库;即整个.git文件夹,或者整个裸仓库)并希望将你当前的git repo与它进行比较......我不会认为它是直截了当的并且需要更多地了解您想要完成的任务。 (除非你有想要分析的历史记录重写,否则你似乎可能在这些方面完成了很多......)

但是你也谈到了checkout命令和重置分支。这些与使用数据库将索引和工作树还原为旧状态有关。如果您想要的只是将当前的工作树与较旧的工作树进行比较,那就非常简单:只需使用git diff

相关问题