【问题标题】:Git clone branchesGit 克隆分支
【发布时间】:2021-06-26 03:58:31
【问题描述】:

我在使用 GitHub 时遇到问题: 我们有一个任务,我们应该在 3 个分支上工作,在每个人完成他们的工作之后,我们需要合并这些分支。 我们在 GitHub 上创建了一个 repo(假设是我创建的),我邀请了我的两个伙伴访问。

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

git branch one
git branch two
git branch three

所以当我运行git branch 时,我应该看到四个分支:onetwothreemaster。 我将代码推送到 GitHub,一切都很好。

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

我的问题:

  1. 为什么会发生这种情况,为什么我们看不到克隆的分支?
  2. 我们如何克隆包含所有分支的存储库?

【问题讨论】:

  • 三个分支你推了吗?只是创建它们并推动 master 不会推动分支。此外,git branch 默认只显示本地分支。添加-a 也可以显示远程分支。
  • 嘿伙计,谢谢你的回复,所以我也应该推树枝吗?不只是代码这将如何?你能写下这样做的步骤吗?感激不尽
  • 如果你想让其他人看到它们,你必须 - 这不是应该的。现在有一个答案可以告诉你如何做。
  • 哦,是的,谢谢我是新来的,正在使用这个平台,非常感谢分享这个。

标签: git github git-branch


【解决方案1】:

那么当我运行 git branch 时,我应该看到四个分支 1 - 2 - 3 -master ...

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

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

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

如果你运行:

git push github one

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

如果你运行:

git push github one two three

如有必要,您将让 Git 发送所有三个分支所需的提交,然后礼貌地要求 GitHub 创建或更新所有三个分支名称。

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

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

git clone 命令是连续几个 Git 命令的简写(如果/根据需要,首先加上一个非 Git 命令,以创建一个运行 Git 命令的空目录)。这些命令:

  • 从其他 Git 存储库(在 GitHub 上)复制所有 提交,但是
  • 复制任何分支

相反,您自己的 Git 将使用它们的分支名称 - 这可能是 只是 mastermain,或者可能是所有四个分支名称,正如我们已经指出的那样 - 和 将这些名称更改为非分支名称。您的 Git 生成的名称是:

  • origin/master(或origin/main)为他们的master(或main);
  • origin/one 为他们的one,如果他们有的话;
  • origin/two 给他们的two,如果他们有的话;

等等。这些是远程跟踪名称,而不是分支名称。它们将由git branch -rgit branch -a 打印出来,但不会由git branch 打印出来。

从它们的 分支 名称中生成这些 remote-tracking 名称后,您的 Git 现在会在 您的 中创建 一个 分支名称em>克隆。这是git clone 的最后一步:它使用您说要使用的分支名称,以及您的-b 选项,并使用该名称——使用同名的origin/ 版本来找到正确的提交——然后签出该提交,以便您可以查看该提交中的文件。

如果您不使用 -b 选项,您的 Git 会询问其他 Git it 推荐的名称。标准推荐是mastermain(无论他们拥有哪一个)。这就是为什么你们都有master

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2013-02-24
    • 2013-06-27
    相关资源
    最近更新 更多