有一天,我不记得我文件夹的主要工作目录在哪里,所以我决定从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上找到奖励积分。
答案 0 :(得分:6)
Q1:git clone http://remote.url/repo.git -b master
Q2:git push origin :gh-pages
,假设origin
是您想要处理的遥控器。
$ git help command
e.g。
$ git help clone
答案 1 :(得分:1)
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)允许您更改它。
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)
如果我理解正确,你可以在两个单独的文件夹中克隆两次相同的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>