如何告诉Git“我已经在/home/repositories/repo.git中有http://../repo.git,不要再次克隆”?

时间:2013-09-16 20:04:35

标签: git

各种脚本通常包含“git clone ...”,并且一次又一次地运行它们会一次又一次地使用Git克隆。

如果我已经拥有此存储库(包括子模块),如何配置Git以覆盖本地URL。理想情况下,Git应将所有新下载的存储库放入该公共位置,并在以后自动重用。

我想要这样的事情:

$ git clone http://q.q/q.git
Downloading the repository to /home/my_repositories/http_q.q_q.git
Cloning from /home/my_repositories/http_q.q_q.git into q

$ git clone http://q.q/qc.git
Downloading the repository to /home/my_repositories/http_q.q_qc.git
Cloning from /home/my_repositories/http_q.q_qc.git into qc
Fetching submodules for qc
Cloning from  /home/my_repositories/http_q.q_q.git
...

2 个答案:

答案 0 :(得分:0)

您可以克隆克隆,然后使用git remote set-url origin <http_url>将其重新定位到原始存储库。

答案 1 :(得分:0)

您可以使用git clone --reference repository来共享现有克隆中的对象。请参阅--shared--reference下的手册页警告。

您可以克隆现有克隆,然后调整其上游(我看到kan already gave that answer too)。