制作远程git存储库的本地副本

时间:2011-08-20 08:20:01

标签: git version-control

我对版本控制的术语或实践和程序不太熟悉。

这是我想要做的:

  1. 我想从Internet下载git存储库中的文件夹。克隆是正确的方法吗?不会克隆保留不必要的元数据文件?有没有办法做一个“干净”的下载?

  2. 我想设置一个本地存储库,其中包含我现在可以使用版本控制的文件夹。也就是说,当我进行提交时,我的本地存储库会更新。

  3. 最后,我希望本地网络上可以访问此本地存储,以便我也可以从局域网上的任何其他计算机上下载。

4 个答案:

答案 0 :(得分:19)

  1. 克隆是正确的方法,但会下载远程Git仓库的所有目录 见git clone of Git Reference
  2. clone命令将创建一个包含已在其中签出的工作树的repo,以及表示完整仓库的.git
  3. 您需要至少拥有一条共享路径,以便其他人克隆/拉/推您的回购 见git local protocol
  4. 如果您不熟悉这些操作,我建议您按照 git immersion 提出的简单练习。

答案 1 :(得分:3)

您无法从git仓库下载单个文件或文件夹,因为git会跟踪整个项目的完整状态,而不仅仅是单个文件。有可能只从远程repositoy克隆一组有限的修订版本(称为浅层克隆),但此类克隆仅限于一组有限的操作,例如,您无法从浅层克隆克隆,或从这样的回购。

如果git repo的大小困扰你,你可以git gc让git重新组织对象数据库,这有时可以改进大小。

如果您想拥有本地缓存​​,可以使用git clone --mirror $REMOTE_URL创建克隆,

您可以从此本地缓存仓库克隆新的工作仓库,并直接推送到上游仓库(您需要在工作副本中git remote add upstream $REMOTE_URL添加到上游仓库的链接,之后您可以{{ 1}}),或者你可以进入本地缓存仓库,然后从那里推送到上游仓库。

答案 2 :(得分:3)

git clone是步骤1&的权利。 2,您可能需要阅读一些git书籍,例如Progit /社区书籍等,以获得第3步的最佳方法和git哲学。

Git,作为分布式 VCS,努力避免“本地网络上可以访问本地存储库”的“单一中央存储库”。您可以在网络上拥有一个裸仓库,允许许多从中推送/拉出,但这与在网络上使用工作目录和只有你使用它就好像它是本地驱动器一样。

答案 3 :(得分:1)

是'git clone'是要走的路。这将获取所有数据并允许您进行提交。只要新的仓库在局域网上可见,其他计算机也应该能够从中克隆它。