2

我发现了很多关于克隆存储库并立即检查给定提交 ID 的问题/答案。简单的方法:

git clone <URL> working-copy
cd working-copy; git checkout <COMMIT-ID>

有了分支机构,您就可以git clone -b <BRANCH> <URL>

使用分支,您还可以进行浅克隆,这使得克隆速度更快,但您无法再签出任意 ID。

所以我的问题是:有没有一种方法可以对给定的 URL/提交 ID 进行浅层克隆,而无需在远程创建分支?

不同类型的远程存储库有区别吗?(例如本地文件系统、BitBucket、GitHub、GitLab 等)

4

1 回答 1

3

如果您无法控制服务器,那么您将无法执行此操作。您可以在专用服务器上禁用安全设置以使其正常工作,但建议这样做。

由于浅层克隆不完整,很多功能在浅层 repo 中不可用(或者至少不能正常工作)。通常,此技术用于存储库非常短暂的部署处理。

话虽如此,在大多数情况下,您希望浅克隆单个提交,标签可能就是您要查找的内容。git clone -b也会接受一个标签,并且因为它们是不可变的,所以它们总是会解析到同一个提交。

我在过去几年中构建的大多数 CI 系统都将分支用于瞬态环境,而标签仅用于永久环境。这个系统对我来说效果很好,但只是几个可靠的选择之一。

于 2017-09-09T02:25:17.090 回答