【问题标题】:git clone gets gh-pages, I want it to clone master (from Github)git clone 获取 gh-pages,我希望它克隆 master(来自 Github)
【发布时间】:2012-04-16 21:37:56
【问题描述】:

有一天我不记得我的文件夹的主要工作目录在哪里,所以我决定从 github 网页上的“git@github.com:”地址克隆项目。

那天我不知道我在做什么,然后我在目录中创建了一堆东西。然后我做了 git add、git clone 和 git push,(我忘了怎么做了)。但现在我在 github 站点上有一个名为“gh-pages”的分支。我真希望我没有那个分支,但我有。

今天我找到了我的原始目录,并在其中创建了一些东西,并做了一些“添加”和一些“推送”。它去了主“分支”(我预料到了,因为我有点放弃了对另一个奇怪分支的希望)。但我现在的问题是:

当我的用户(我自己在另一台机器上尝试过)使用 github 在我的项目主页上给我的地址进行 git clone 时,他们出于某种奇怪的原因最终得到了来自 'gh -pages 的分支。

Q1:我如何让他们做一个 git clone 以便他们可以得到我今天工作的东西(在 master 分支中)。
Q2:如何从 github 站点中删除 'gh-pages' 分支?我决定放弃它。如果你有更好的建议,我也接受。 Q3:如果你能告诉我我应该早点做什么,一旦我意识到我的电脑上有两个地方有两个独立分支的代码,我在 github 上的项目中就可以加分。

【问题讨论】:

    标签: git github github-pages


    【解决方案1】:

    Q1:git clone http://remote.url/repo.git -b master
    Q2:git push origin :gh-pages,假设origin 是您要使用的遥控器。

    顺便说一句,git 附带了非常好的文档。它可以通过

    访问
    $ git help command
    

    例如

    $ git help clone
    

    【讨论】:

      【解决方案2】:

      Q1:将默认分支更改为master

      根据您的描述,您的默认分支似乎设置为 gh-pages 而不是 master。要修复,请登录 GitHub,单击您的存储库,单击 Admin 按钮,然后将 Default Branch 更改为 master

      这样做的目的是将 GitHub 存储库中的 HEAD 符号引用更改为指向 refs/heads/master 而不是 refs/heads/gh-pages。克隆存储库时,Git 会查看远程存储库的 HEAD 引用并将其用作检出的默认分支。请参阅我的answer to a different question 了解更多详情。通常HEAD 指向新的裸存储库上的refs/heads/master,但 Git(和 GitHub)允许您更改它。

      Q2:删除gh-pages分支

      gh-pages 分支是 GitHub 用于将内容上传到 project pages 的特殊分支。

      要从 GitHub 存储库中删除您的 gh-pages

      git push git@github.com:username/repo.git :gh-pages
      

      或:

      git push --delete git@github.com:username/repo.git gh-pages
      

      请注意,上述命令只会从您的 GitHub 存储库中删除 gh-pages 分支——它不会从您的本地存储库中删除 gh-pages 分支。删除本地gh-pages 分支:

      git checkout master
      git branch -D gh-pages
      

      【讨论】:

        【解决方案3】:

        第三季度:

        如果我理解正确,您在两个单独的文件夹中克隆了两次相同的 repo,并且每个克隆都有一个不同的分支,其中包含一些可用的代码。

        我认为您必须选择要保留的克隆,然后创建一个与另一个克隆分支同名的新分支。以下命令将创建一个新分支并自动检出到它。

        git checkout -b <other-branch-name>
        

        假设另一个分支已经推送到 Github 上,你直接拉到你想保留的那个分支。

        git pull --rebase origin <other-branch-name>
        

        如果你还没有推送其他分支,将其发布到服务器并上传。

        git push origin <other-branch-name>
        

        或者,您可以直接从源分支到目标分支,但我不知道它的效果如何。 免责声明,我自己从未在生产模式下尝试过,但我知道它是正确的,它应该可以工作。

        git push origin <other-branch-name>:<current-branch>
        

        【讨论】:

          猜你喜欢
          • 2011-08-14
          • 1970-01-01
          • 2010-12-14
          • 2015-12-22
          • 2013-09-01
          • 2015-06-04
          • 2013-12-23
          • 1970-01-01
          • 2015-10-20
          相关资源
          最近更新 更多