git clone获取gh-pages,我希望它能克隆master(来自Github)

时间:2012-04-03 08:35:21

标签: git github github-pages

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

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

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

当我的用户(我自己在另一台机器上尝试过这个)通过使用github在我项目的主页面上给我的地址做一个git克隆时,他们出于某些奇怪的原因最终得到了来自'gh的代码-pages'分支。

Q1:我如何让他们做一个git克隆,以便他们可以获得我今天工作的东西(在主分支中)。
Q2:如何从github网站中删除'gh-pages'分支?我决定放弃它。如果你有更好的建议,我也会接受。 Q3:如果你能告诉我之前我应该​​做些什么,一旦我意识到我的电脑上有两个位置,我的项目中有两个独立分支的代码,我会在github上找到奖励积分。

3 个答案:

答案 0 :(得分:6)

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

顺便说一下,git带有非常好的文档。可以使用

访问它
$ git help command

e.g。

$ git help clone

答案 1 :(得分:1)

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

答案 2 :(得分:0)

Q3:

如果我理解正确,你可以在两个单独的文件夹中克隆两次相同的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>