【问题标题】:Difference between git remote add and git clonegit remote add 和 git clone 的区别
【发布时间】:2011-06-18 20:09:29
【问题描述】:

clone 命令有什么作用? svn中是否有与之等效的东西?

有什么区别

git remote add test git://github.com/user/test.git

还有

git clone git://github.com/user/test.git

创建的 repo 的名称重要吗?

【问题讨论】:

标签: git git-clone git-remote


【解决方案1】:

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

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

【讨论】:

  • 您的意思是,例如,在我的示例中,test 文件夹将为空,我将不得不从 test 文件夹中执行 '$git fetch test'?
  • @nacho4d:你必须先做git init,然后是git fetchgit merge(或git pull),然后你仍然会有点偏离。 ..查看我链接的副本。
【解决方案2】:

这些功能相似(试试看!):

# git clone REMOTEURL foo

和:

# mkdir foo # cd foo # git 初始化 # git 远程添加源 REMOTEURL # git pull 原点大师 #cd ..

现在有一些细微的差别,但基本上你可能不会注意到它们。作为留给读者的练习,比较每个目录中的 .git/config。

【讨论】:

  • 我试过了。使用clone,.git/config 有一个 [branch "master"] 部分。这是否意味着当使用clone(将来)我可以合并该分支而与remote add我不能?
  • 嗯,首先……它们还是一样的。无论哪种方式,您实际上都可以从上游合并。有了额外的“分支”语句,这意味着您不需要指定上游分支。 IE,在具有上述“分支”的克隆中,您可以执行“git pull”,而在另一个克隆中,您很可能需要执行“git pull origin master”。现在,您实际上也可以使用带有 -t 标志的“git remote add”来添加此分支语句。尝试使用和不使用“-t master”的“git remote add”:-)
  • @nacho4d:您可以在 .git/config 中获得相同的 [branch "master"] 部分,使用以下命令:git branch --set-upstream master origin/master。这是我在您列出的git remote addgit pull 之后使用的第三个命令,这三个命令似乎给了我与git clone 相同的配置。
  • --set-upstream 似乎已被弃用,这效果更好:git branch --set-upstream-to=origin/master master
  • 我讨厌开发人员从你手中夺走简单的选项。恕我直言,拉和推都应该有更简单的 --set-upstream 标志。
【解决方案3】:

clone 命令创建您指定的存储库的本地副本。 remote add 添加了一个远程仓库,您可以从中推送或拉取。

clone 的 svn 等价物是 checkout

【讨论】:

    【解决方案4】:

    git clone:

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

    git remote add:

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

    如果你这样做:

    git remote add TechLeadRepo  git://github.com/user/test.git
    

    那么您还没有向您的计算机添加任何内容。将其添加到远程分支后,您可以通过执行以下操作获取该远程上所有分支的列表:

    git fetch --all
    

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

    git checkout -b myLocalFeature22 TechLeadRepo/feature22
    

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

    【讨论】:

      猜你喜欢
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 2018-07-09
      相关资源
      最近更新 更多