git remote add和git clone之间的区别

nac*_*o4d 63 git git-clone git-remote

什么是clone命令吗?在svn中有没有相同的东西?

有什么区别

git remote add test git://github.com/user/test.git
Run Code Online (Sandbox Code Playgroud)

git clone git://github.com/user/test.git
Run Code Online (Sandbox Code Playgroud)

创建的repo的名称是否重要?

Jas*_*run 60

git remote add只需在git配置中创建一个条目,指定特定URL的名称.你必须有一个现有的git repo才能使用它.

git clone 通过复制位于您指定的URI的现有存储库来创建新的git存储库.


Wes*_*ker 47

这些在功能上相似(试试吧!):

 # git clone REMOTEURL foo

和:

 # mkdir foo
 # cd foo
 # git init
 # git remote add origin REMOTEURL
 # git pull origin master

现在存在细微差别,但从根本上说你可能不会注意到它们.作为练习留给读者,比较每个目录的.git/config.

  • 我试过了.使用`clone`,.git/config有一个[branch"master"]部分.这是否意味着当使用`clone`(将来)时我可以合并那个分支和`remote add`我不能? (2认同)
  • 好吧,首先......他们仍然是一样的.实际上你可以从上游合并.使用额外的"分支"语句意味着您不需要指定上游分支.IE,在一个带有上述"分支"的克隆中你可以做一个"git pull",而在另一个你很可能需要做一个"git pull origin master".现在,您实际上也可以使用带有-t标志的"git remote add"来添加此分支语句.尝试使用和不使用"-t master"的"git remote add":-) (2认同)

Raf*_*ler 10

clone命令创建您指定的repo的本地副本.remote add添加一个可以推送或拉出的远程仓库.

svn的相当于clonecheckout.


Hon*_*ney 7

git clone

将文件物理下载到您的计算机中。它将占用您计算机的空间。如果 repo 是 200Mb,那么它将下载所有内容并将其放在您克隆的目录中。

git remote add

不会占地方!它更像是一个指针!它不会增加您的磁盘消耗。它只是获取可用分支的快照以及我相信它们的 git 提交历史记录。它不包含项目的实际文件/文件夹。

如果你这样做:

git remote add TechLeadRepo  git://github.com/user/test.git
Run Code Online (Sandbox Code Playgroud)

那么你还没有在你的电脑上添加任何东西。将它添加到远程分支后,您可以通过执行以下操作获得该远程所有分支的列表:

git fetch --all
Run Code Online (Sandbox Code Playgroud)

在获取(或拉取)时,您下载文件然后如果您想让您同事的 feature22 分支进入您的本地,您只需这样做

git checkout -b myLocalFeature22 TechLeadRepo/feature22
Run Code Online (Sandbox Code Playgroud)

如果您克隆了他的 repo,那么您将不得不进入该本地存储库的目录,并且只需checkout转到您想要的分支