我可以让 git 仅从远程存储库提取工作副本吗?

我可以让 git 仅从远程存储库提取工作副本吗?

作为系统管理员,我希望能够编写一个自动化安装流程以安装到生产服务器:

  • 有权访问远程 git 存储库(例如git.mycompany.com
  • release_20110721_01可以从存储库中获取一个分支/标签的副本(例如)
  • 不会创建整个存储库的本地副本

换句话说,有一个包含所有修订的中央存储库,但仅将特定标签安装到生产服务器。

有办法吗?至少使用 CVS 可以获得具有给定标签的模块的工作副本,而无需提取整个存储库的副本。

答案1

这是集中式 VCS(如 CVS)和 DVCS(分布式)之间的主要区别:你总是克隆全部仓库的内容,即使你可以执行浅克隆, 作为奥利普罗 提及

  • 在 CVCS 中,您可以放入所有内容,但只获取其中的一部分。
  • 在 DVCS 中,您将 repo 视为一组全局且连贯的文件,您始终将其作为全部文件进行操作。

只对一个分支进行浅克隆是可能的,但很复杂:参见“使用 Git 和 Mercurial 进行部分克隆“。

但我建议不要使用 Git 作为发布管理/部署工具:“如何在 git 中浅克隆单个分支?“。

我宁愿选择git archive压缩您需要的正确分支/版本,然后将其复制到适当的服务器。

答案2

-b当然,让未配置的生产服务器可以访问您的中央存储库,使用和选项从服务器执行 git clone--depth来指定您想要的分支以及您希望服务器可用的修订深度。

相关内容