Git克隆分支
我在GitHub上遇到了一个问题: 我们有一个任务,我们应该在3个分支上工作,在每个人完成他们的工作后,我们需要合并分支。 我们在GitHub上创建了一个回购协议(假设是我创建的),我邀请我的两位同事访问 当我在终端中创建repo时,我将空文件推送到GitHub(我们还没有开始工作)。 现在我们开始创建分支,我作为主机在终端中运行以下三个命令: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,
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请阅读以下内容:哦,是的,谢谢我是新来的,正在使用这个平台,非常感谢分享。