无法使用git branch -r查看推送的分支

时间:2018-09-18 11:21:04

标签: git github gitlab

我从 github 克隆了一个git存储库,创建了一个新分支branch1,对其进行了一些更改,然后将新分支推送到了一个远程 gitlab 资料库。然后从branch1创建另一个名为branch2的分支,并将其推送到远程gitlab存储库。现在,当我使用git branch -r时,我只会看到branch1。但是,如果将远程gitlab存储库克隆到另一个文件夹中,则可以看到两个分支。

我还观察到第一次将其推送到远程存储库时,仅推送了branch1,而没有推送master分支。

再观察一下,我可以在我的gitlab帐户中在线查看branch2

我真的很困惑为什么会这样。我们非常感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

根据您的配置,未指定分支的git push可以以不同的方式进行解释,包括对所有分支的全局推送,或对当前已签出分支的狭窄推送,等等。

使用git config -l检查您的配置中是否有push.default条目。您可以在可能的模式之间进行选择,请看the doc。 (simple是git 2.0以来的默认设置,但在此之前是matching

要进行设置,只需执行git config --global push.default <yourPickedMode>

此外,请记住,git branch -r不会直接检查远程分支,但会检查它们的本地引用。请务必先git fetch使它们与您的远程仓库保持同步)

答案 1 :(得分:2)

我认为您在推送时没有为分支机构设置远程跟踪,因此这是预期的行为。请参阅git branch -r的帮助;

  

-r
  -远程

     

列出或删除远程跟踪分支(如果与-d一起使用)。

尝试使用git push -u进行推送,这将设置上游跟踪分支。尝试git branch --all查看所有分支。

答案 2 :(得分:0)

由于上述答案,我得到了答案。问题是我没有为新的gitlab存储库指定remote / push的{​​{1}}。当我fetch编辑时,先前github存储库中的数据已下载。首先,我必须fetch一个add或通过设置URL替换当前的remoteorigin

然后我可以获取更新: git remote add new_remote <URL/remote_repo>

然后在git fetch new_remote中检出一个分支: new_remote