我最近在一个我开始研究的项目中被介绍给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”的本地目录中的整个项目。由于我只使用了一个网址进行克隆,所以做“远程添加”的意思是什么?是否意味着同一个项目(commons-lang)可以托管在多个服务器上,还是我可以通过添加新的远程地址来克隆本地项目中的新项目?
为问题的初学者语气道歉。试图让我的事实彻底失败。感谢。
答案 0 :(得分:16)
您可以使用git remote add
(来自“Git Basics - Working with Remotes”)添加所需数量的上游回复地址。
克隆时,会为您添加一个,名为“origin
”。
这是否意味着同一个项目(commons-lang)可以托管在多个服务器上,
是的,这是由于Git的分布式特性,因为推送和拉动会将合并工作流程中的出版工作流 which is orthogonal 引入。
或者是否可以通过添加新的远程地址来克隆本地项目中的新项目?
没有。您可以从不同的上游回购中获取。
请参阅“Definition of “downstream” and “upstream””。
你在GitHub上分岔时git remotes add
的一个经典场景:
请参阅“How do I merge locally a master and a fork in git?”
origin
。git remote add upstream https://github.com/user/reponame
才能使你的本地克隆与原始仓库保持同步(你不能直接贡献一个,这就是为什么你必须在GitHub上做一个分叉的原因)第一名)。