2

我在 linux 服务器上创建了一个 git 存储库。在更长的时间里,我独自工作,一切都很好。当一个朋友加入时,他抱怨他只能看到 master 分支。我也在我的机器上检查了这个,我也在 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,只是事情就像他们正在针对单独的 repo 工作(除了共享的 master 分支)。可能是我以某种方式错误配置了 git 服务器,或者可能是密钥问题,不确定,需要建议,谢谢

4

1 回答 1

4

请注意,这git branch -r只会列出存储在本地存储库中的远程分支。因此,这并不一定意味着这些分支像远程存储库本身那样存在。但是,默认情况下,git fetch它将从远程存储库中获取所有分支并将远程引用添加到本地存储库中。因此,您也将拥有远程本地存在的所有分支。

然而,没有做git fetch的是清理创建但稍后从远程存储库中删除的远程分支。为此,请使用git fetch origin --prune. 这将使 Git 更新远程存储库的远程分支列表。

因此,如果分支稍后被移除,您会注意到它。如果这不会使远程分支列表同步,那么很可能您的远程存储库实际上并不相同。您可以使用git remote -v获取远程配置列表,并仔细检查两台机器上的配置是否相同。

于 2013-01-19T00:12:33.783 回答