我是 git 新手。
我不小心删除了我们在 git 上的项目的部分历史记录。现在,我想将头设置为最新的稳定版本。问题是我想将 HEAD 设置为的树无法从它的命令中访问,但我可以通过浏览器访问它。
有人知道如何使用其 SHA 克隆特定树吗?
我试过 git reset SHA,但是 SHA 不被识别。我也试过git clone -b SHA repo.git
了,但也没有用。
你混淆了不同的概念。
每当您克隆时,都会克隆整个存储库。(没有办法克隆特定的“树”。)
一个存储库主要由许多提交组成。这些是您可以结帐的。每个提交都知道它的父提交——这形成了一个历史树。
提交本身包含一个包含所有文件的目录树。
通常有某种服务器托管“中央”存储库。
您首先克隆您的存储库。这将在您的主机上创建该中央存储库的完整副本。(包含所有分支和提交。)
之后,您通常只与本地存储库交互。
从您的错误消息(不幸的是,仅在某些评论中隐藏)看来您的项目可能使用子模块。(一种在项目中包含完全不同的存储库的方法。)
这个“最新的稳定版本”已经推送到服务器了吗?如果是,您可以运行git fetch
and git checkout SHA
。
如果此特定提交仅在您的本地历史记录中,请执行git reflog
并识别该提交。然后签出所需的提交。