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

3
有一天,我忘记了我的文件夹的主要工作目录在哪里,所以我决定从github网页上的“git@github.com:”地址克隆项目。那天我不知道自己在做什么,之后在目录中创建了很多东西。然后我执行了git add、git clone和git push(我忘记了怎么做)。但现在我在github网站上有一个名为“gh-pages”的分支。我真希望没有这个分支,但是现在我有了。
今天我找到了我的原始目录,并在其中创建了一些内容,执行了一些“add”和一些“push”。它进入了主“branch”(我预计会这样,因为我对其他奇怪的分支已经放弃了希望)。但是我的问题现在是:
当我的用户(我在另一台机器上尝试过)使用github在我的项目主页上给出的地址进行git克隆时,由于某种奇怪的原因,他们最终得到的是“gh-pages”分支的代码。
Q1:如何让他们执行git克隆,以便他们可以获取我今天工作的内容(即在主分支中的内容)。 Q2:如何从github网站中删除“gh-pages”分支?我决定放弃它。如果您有更好的建议,我也愿意听取。 Q3:如果您能告诉我早些时候应该怎么做,一旦我意识到我的电脑上有两个地方有我在github项目中两个不同分支的代码,那就更好了。
3个回答

6

问题1: git clone http://remote.url/repo.git -b master
问题2: 假设origin是您想要操作的远程主机,git push origin :gh-pages

顺便说一句,git自带相当好的文档。可以通过以下方式访问:

$ git help command

e.g.

$ git help clone

1

问题1:将默认分支更改为master

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

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

问题2:删除gh-pages分支

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

要从 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

0

问题三:

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

我认为您需要选择要保留的克隆,然后创建一个与另一个克隆分支相同名称的新分支。以下命令将创建一个新分支并自动切换到该分支。

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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接