Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git克隆分支_Git_Github_Git Branch - Fatal编程技术网

Git克隆分支

Git克隆分支,git,github,git-branch,Git,Github,Git Branch,我在GitHub上遇到了一个问题: 我们有一个任务,我们应该在3个分支上工作,在每个人完成他们的工作后,我们需要合并分支。 我们在GitHub上创建了一个回购协议(假设是我创建的),我邀请我的两位同事访问 当我在终端中创建repo时,我将空文件推送到GitHub(我们还没有开始工作)。 现在我们开始创建分支,我作为主机在终端中运行以下三个命令: git branch one git branch two git branch three 因此,当我运行git分支时,我应该看到四个分支:one,

我在GitHub上遇到了一个问题: 我们有一个任务,我们应该在3个分支上工作,在每个人完成他们的工作后,我们需要合并分支。 我们在GitHub上创建了一个回购协议(假设是我创建的),我邀请我的两位同事访问

当我在终端中创建repo时,我将空文件推送到GitHub(我们还没有开始工作)。 现在我们开始创建分支,我作为主机在终端中运行以下三个命令:

git branch one
git branch two
git branch three
因此,当我运行
git分支时,我应该看到四个分支:
one
two
two
twree
master
。 我将代码推送到GitHub,一切都很好

当我的朋友和我想将repo克隆到我们的机器上时,问题就开始了,例如,我的第一个同事运行
git clone reponame
,当他运行
git branch
时,他只看到分支
master

我的问题是:

  • 为什么会发生这种情况,为什么我们看不到带有克隆的分支
  • 我们如何克隆包含所有分支机构的回购协议
  • 所以当我运行git分支时,我应该看到四个分支一-二-三-master

    对。您在本地存储库中创建了三个新分支,因此这三个分支存在。Git最初创建了
    master
    ,因此它也存在

    我将代码推送到GitHub,一切都很好

    当您运行
    gitpush
    时,您正在将提交推送到GitHub。在您有、没有、需要的任何新提交到达GitHub后,Git要求GitHub的Git在其存储库中创建或更新一些分支名称

    如果您运行:

    git push github one
    
    git push github one two three
    
    您发送到GitHub的提交将是通过您的分支名称
    one
    找到的提交。(如果他们已经有部分或全部提交,您的Git将跳过发送它们,从而加快推送速度。)然后您的Git要求他们的Git创建或更新其分支名称
    one

    如果您运行:

    git push github one
    
    git push github one two three
    
    如果需要,您将让Git发送所有三个分支所需的提交,然后礼貌地要求GitHub创建或更新所有三个分支名称

    您没有明确说明您运行了哪种类型的
    git push
    ,因此我们无法确定您在GitHub上创建了哪些名称(如果有的话)

    当我的朋友和我想将repo克隆到我们的机器上时,问题就开始了。例如,我的第一个同事运行git clone reponame,当他运行git branch时,他只看到了主机

    一个
    git clone
    命令是一行中多个git命令的简写(如果需要,首先加上一个非git命令,以生成一个空目录,在其中运行git命令)。这些命令:

    git branch one
    git branch two
    git branch three
    
    • 从其他Git存储库复制所有提交(在GitHub上),但是
    • 不复制任何分支
    相反,您自己的Git将采用它们的分支名称,可以是
    master
    main
    ,也可以是所有四个分支名称,正如我们已经指出的,并将这些名称更改为非分支名称。Git生成的名称是:

    • origin/master
      (或
      origin/main
      )用于其
      master
      (或
      main
    • origin/one
      ,如果他们有
      one
    • origin/two
      ,如果他们有
      two
    等等。这些是远程跟踪名称,而不是分支名称。它们将由
    git branch-r
    git branch-a
    打印,但不是由
    git branch
    打印

    从分支名称生成这些远程跟踪名称后,Git现在在克隆中创建一个分支名称。这是git clone的最后一步:它使用您说要使用的分支名称和您的
    -b
    选项,并使用相同名称的
    源代码
    版本来创建该名称,以找到正确的提交,然后签出该提交,以便您可以看到该提交中的文件


    如果您不使用
    -b
    选项,您的Git将询问另一个Git它推荐的名称。标准建议为
    master
    main
    (两者中的任何一个)。这就是为什么你们都有一个
    master

    你们推动了这三个分支吗?仅仅创建它们并按下master并不会按下分支。此外,git branch默认情况下仅显示本地分支。添加
    -a
    以显示远程分支。嘿,伙计,谢谢你的回复,所以我也应该推分支?不仅仅是代码,这将是什么?你能写下这样做的步骤吗。谢天谢地,如果你想让别人看到他们,你必须——这不是一个应该。现在有一个答案向你展示了该如何做。@joey请阅读以下内容:哦,是的,谢谢我是新来的,正在使用这个平台,非常感谢分享。