3

有一天,我不记得我的文件夹的主要工作目录在哪里,所以我决定从 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 上的项目中就可以加分。

4

3 回答 3

6

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

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

$ git help command

例如

$ git help clone
于 2012-04-03T08:38:10.017 回答
1

Q1:将默认分支更改为master

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

这样做是HEAD将 GitHub 存储库中的符号引用更改为指向refs/heads/master而不是refs/heads/gh-pages. 克隆存储库时,Git 会查看远程存储库的HEAD引用并将其用作默认分支以进行检出。有关更多详细信息,请参阅我对不同问题的回答。通常HEAD指向refs/heads/master新的裸存储库,但 Git(和 GitHub)允许您更改它。

Q2:删除gh-pages分支

gh-pages分支是 GitHub 用于将内容上传到项目页面的特殊分支。

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

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

或者:

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

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

git checkout master
git branch -D gh-pages
于 2012-04-04T15:42:49.673 回答
0

问题 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>
于 2013-03-23T12:47:54.410 回答