我从 github 克隆了一个git存储库,创建了一个新分支branch1
,对其进行了一些更改,然后将新分支推送到了一个远程 gitlab 资料库。然后从branch1
创建另一个名为branch2
的分支,并将其推送到远程gitlab存储库。现在,当我使用git branch -r
时,我只会看到branch1
。但是,如果将远程gitlab存储库克隆到另一个文件夹中,则可以看到两个分支。
我还观察到第一次将其推送到远程存储库时,仅推送了branch1
,而没有推送master
分支。
再观察一下,我可以在我的gitlab帐户中在线查看branch2
。
我真的很困惑为什么会这样。我们非常感谢您的帮助。
答案 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替换当前的remote
:
origin
然后我可以获取更新:
git remote add new_remote <URL/remote_repo>
然后在git fetch new_remote
中检出一个分支:
new_remote