我在linux服务器上创建了一个git存储库。在较长的时间里,我一个人工作,一切都很好。当一个朋友加入时,他抱怨说他只能看到主分支。我已经在我的机器上检查了这个,我也在VMWare中运行ubuntu实例,实际上就是这样。为了让我更加困惑,我能够从ubuntu机器推出一个新的分支,只能从ubuntu客户端内部看到,但在Windows上的客户端上看不到。
所以我面临的问题是从两个(在我的逻辑上是逻辑上)单独的机器,但对于相同的存储库,我看到不同的分支
我最初在Windows上使用Git bash推送分支,如果我在那里运行 git branch -r ,我得到:
origin/HEAD -> origin/master
origin/develop
origin/develop2
origin/master
在ubuntu git branch -r 我得到了
origin/HEAD -> origin/master
origin/develop3
origin/master
我可以按照自己喜欢的方式执行 git fetch ,只是表示他们正在针对单独的仓库工作(除了共享主分支)。可能是我以某种方式错过配置git服务器,或者可能是密钥问题,不确定,需要建议,谢谢
答案 0 :(得分:3)
请注意,git branch -r
仅列出存储在本地存储库中的远程分支。所以它并不一定意味着那些分支就像远程存储库本身那样存在。但是,默认情况下,git fetch
将从远程存储库中获取所有分支,并将远程引用添加到本地存储库中。因此,您也将在本地远程存在所有分支。
然而,git fetch
未执行的操作是清理已创建但稍后从远程存储库中删除的远程分支。为此,请使用git fetch origin --prune
。这将使Git更新远程存储库的远程分支列表。
因此,如果以后删除分支,您会注意到这一点。如果这不会使远程分支列表同步,那么很可能您的远程存储库实际上并不相同。您可以使用git remote -v
获取远程配置列表,并仔细检查两台计算机上是否相同。