2017-02-13 156 views
-1

我们有一个不断发展的git回购。我想比较目前的回购情况和我几个月前实现的里程碑。我如何获得回购旧版本的本地副本,而不会对回购的当前状态造成任何伤害/损害?获取旧版git回购的副本

我看到一些看起来很有前途的选项(“checkout”,“reset current branch”),但我想要小心不要意外地将主分支恢复为每个人。

+1

这是您可以执行的最基本的Git任务之一,并且阅读任何Git教程都会向您显示这个怎么做。 – meagar

回答

0

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

为了回到最近的提交只是做git checkout master

0

似乎有大约GIT中是如何工作的一些误会......

首先是好消息:只要你有一个克隆(你几乎可以肯定总是有)工作,它是不太可能,你会改变主要分支“为大家”。您只需确保不要:push ing主。你可以做任何你想要的仓库克隆,这并不重要。如果你真的真的担心,然后克隆回购和在该克隆git remote remove origin,现在你真的不得不改变任何关于原始回购的东西。

但是现在回到以前的状态并比较......这不是很清楚你想要做什么。

你说回复存储库旧的状态;在大多数情况下,随着回购的发展,您只需添加对象并更新分支参考。所以,如果你的意思是你将git仓库(包括数据库,即整个.git文件夹,或者一个完整的仓库)归档,并且希望将你当前的git仓库与它进行比较......我不会认为这是直接的并且需要更多地了解你想要完成的事情。 (除非已经有历史重写你要分析,它似乎并不像有多少,你可以沿这些线路完成...)

但你也说说checkout命令和重置分支机构。这些都与使用数据库来恢复索引和工作树到一个较旧的状态。如果你想要的只是将你当前的工作树与较旧的工作树进行比较,那很简单:只需使用git diff