我在Github上有一个回购。我当地的Git master分支机构正常运行并且是最新的。我通过Github创建了一个gh-pages
分支。在我的本地计算机上,我执行以下操作:
git pull
git checkout -b gh-pages
它说我现在在分支gh-pages
上,但目录中的所有文件仍然来自我的master
分支。如何查看和编辑gh-pages
分支上的文件?
答案 0 :(得分:2)
Adi Levin is correct:您创建了一个新的本地gh-pages
分支,它与您在github上创建的gh-pages
分支无关。
你没有显示"遥控器"你用于github的名字,但是让我们说origin
(这很典型)。如果是这样,当git pull
执行git fetch
步骤以从github.com上的git存储库获取您的存储库的新内容时,您的本地存储库将获取远程 - 跟踪分支名为origin/gh-pages
,与名为gh-pages
的远程上的origin
匹配。 (如果你为遥控器使用了不同的名称 - 例如你称之为calvinandhobbes
- 你获得calvinandhobbes/gh-pages
,依此类推。)
然后,你做了git checkout -b ...
。这里的关键是-b
开关,告诉git checkout
:请创建一个新的本地分支,忽略所有那些远程分支和我现在拥有的其他本地分支,只需创建一个新的本地分支。这意味着您的本地分支gh-pages
与origin/gh-pages
没有任何关系。
修复很简单:退回本地gh-pages
(以便您可以使用git branch -d
删除分支),然后删除分支:
git checkout master
git branch -d gh-pages
如果你想保留分支(可能你已经对它进行了一些提交),只需重命名它就可以了 - 当你在它上面时,你可以这样做,或者在退回之后,无论你喜欢什么:
git branch -m newname gh-pages
(git branch
只需要新名称,而不是新名称和旧名称,如果您仍在意外gh-pages
,但无论如何都要使新名称和旧名称都有效。“ / p>
现在您已不再拥有gh-pages
分支,请告诉git checkout
切换到您当地的gh-pages
分支:
git checkout gh-pages
等等,什么?我们摆脱它,我们不能再继续它了!
完全。 git checkout
命令无法访问此不存在的分支。所以,当尝试时,它会对自己说:"等等,嗯,还没有gh-pages
。我想知道是否有一个名为gh-pages
的远程跟踪分支?"它可以查看所有远程跟踪分支机构,嘿,它就在那里!唯一一个远程跟踪gh-pages
分支,即origin/gh-pages
!
此时它的作用有些神奇:它会为您创建一个新的本地分支gh-pages
,类似,就像它与-b
一样,但不同:新的gh-pages
设置为从与origin/gh-pages
,和相同的提交开始,新的gh-pages
也设置为 track 远程跟踪分支。
也就是说,git checkout gh-pages
结束了:
git checkout -b --track gh-pages origin/gh-pages
(与您运行的命令相比,没有--track
且没有origin/gh-pages
:差异是 gh-pages
启动和新分支设置了上游分支,即origin/gh-pages
。)
答案 1 :(得分:1)
您必须创建分支并将删除分支设置为跟踪分支:
git branch gh-pages -t origin/ghpages
-t
是设置远程跟踪分支。
然后你可以使用它。