12

我最近在一个我开始工作的项目中被介绍到 git,这鼓励我开始阅读 Scott Chacon 的“Pro Git”的在线版本。

书中有一节简要介绍了添加“远程存储库”的主题。由于 Git 是分布式 SCM,我知道使用 GIT 的常见情况是在本地计算机上“克隆”远程存储库并在本地副本上工作。当您完成更改并将所有更改提交到本地副本时,然后您将更改“推送”到远程存储库,以便其他人也可以查看您的更改。

这让我想到了我的问题——据我所知,“git remote add”有效地“添加”了一个远程存储库作为我们以后可以使用的速记符号。我不明白的是——因为我只指定一个存储库 URL 进行克隆,如何在本地项目目录下添加多个存储库 URL?

准确地说,假设我检查了 Apache commons-lang 项目使用

git clone git://git.apache.org/commons-lang.git

这导致 GIT 将整个项目复制到我名为“commons-lang”的本地目录中。由于我只使用了一个 url 进行克隆,所以这里的“远程添加”是什么意思?这是否意味着同一个项目(commons-lang)可以托管在多个服务器上,或者我可以通过添加新的远程地址在本地项目中克隆一个新项目?

为问题的初学者般的语气道歉。只是想让我的事实直截了当。谢谢。

4

1 回答 1

18

您可以添加任意数量的上游仓库地址git remote add(来自“ Git Basics - Working with Remotes ”)。

克隆时,会为您添加一个,命名为 ' origin'。

这是否意味着同一个项目(commons-lang)可以托管在多个服务器上,

是的,这是由于 Git 的分布式特性,因为推送和拉取引入了与合并工作流程正交的发布工作流程。

还是我可以通过添加新的远程地址在本地项目中克隆一个新项目?

不,您可以从不同的上游存储库中获取。

参见“ “下游”和“上游”的定义</a>”。

git remotes add在 GitHub 上进行 fork 的一个经典场景:
请参阅“
如何在本地合并一个 master 和一个 git 中的 fork?

远程添加

  • origin在 GitHub 上克隆你的 fork 时为你添加。
  • 但是你需要git remote add upstream https://github.com/user/reponame为了让你的本地克隆与原始 repo 保持同步(你不能直接贡献,这就是为什么你必须首先在 GitHub 上创建一个 fork)。
于 2012-12-09T10:57:56.077 回答