2015-05-27 75 views
0

如果我只是对我的新git repo(git push -u origin master)执行初始化操作,我认为我需要通过立即执行克隆来将本地代码设置为工作副本。或者,它基本上已经“克隆”,或者我的意思是它已经被标记为“工作副本”,因为这是一个新的回购我创建..不存在吗?只是想确定一下,我对Git相当陌生。初始推送后克隆?

+0

嗯,很难理解,你可以写一些代码行让我们知道你在哪里? –

回答

2

我开始解释之前,我需要你了解3支链是在这里工作:

  • 本地master
  • 远程master(在origin
  • 本地origin/master(当地的 “反思”通常不用于直接使用)

在您推送之前,您只有一个本地master,没有别的,空的遥控器。

git push -u origin master 

这试图当地master树枝上叫origin远程仓库相同的名称(master)(用于远程的通用名称,克隆时甚至采用)推到远程分支。

如果成功的话,Git会创建一个名为origin/master一个新的本地分支,并设置本地master“跟踪变化”(因为-u在“上游”),以origin/master:该分支的任何更改都假定为“应该合并也变成master“。

只有当您从远程存储库中获取更改时,这才是重要的。当您在master分支上时,它将首先将提交提交到origin/master,然后检查master正在跟踪哪个分支。找到origin/master后,它会尝试将merge与您当地的master一起使用。 pull在内部做了很多。

在此之后,您的本地masterorigin/master应该在同一个提交上,并且您的远程master应该看起来与您本地的完全相同。所以你不需要做任何事情。

为了更好地理解分支,我强烈建议this interactive tutorial

+0

漂亮的工具,没有遇到过,但感谢 – PositiveGuy

0

如果我没有理解这个权利,你现在在alread "cloned"状态:

如果您已成功运行一个git push -u origin master然后从本地资源库运行它。

通过提供-u选项来推,git会记住你的分支是为了跟踪一个上origin,这类似于你通过克隆远程仓库得到什么。

0

没有必要克隆您推送的计算机上的任何内容。您基本上拥有远程存储库的克隆;它恰好与您的本地存储库完全相同。

当您克隆存储库时,这意味着您的不存在目前在您的计算机上存在的代码。在你的场景中,你已经有了代码,所以你不需要做任何克隆。

+0

是的,只是想确定...但是克隆是为现有你的权利 – PositiveGuy

相关问题