似乎我们可以使用
git branch -r
或
git branch -a
查看远程分支。但是,当我在GitHub上git clone
我的回购,然后在GitHub上添加了一个分支,并尝试了上面的命令时,我在本地机器上看不到新的分支。我甚至编辑了一个文件并在新分支上提交,但仍然无法使用这些命令在本地计算机上看到新分支。
在我使用git pull
之前,git branch -a
会显示新分支(但git branch
不会)。但我想我可能不想使用git pull
,因为它会在本地更新我的文件。在那种情况下,我可以看到所有远程分支吗?
(另外,我会使用remotes/origin/wah-la-la
将新分支视为git branch -a
,然后只有在我执行git checkout wah-la-la
之后,然后从这一点开始,我将能够当我执行master
时,请同时查看wah-la-la
和git branch
。在结帐前我无法看到wah-la-la
吗?)
答案 0 :(得分:5)
git branch
仅显示本地存储库中本地存在的分支(直接分支或远程分支)。要更新它们,您可以使用git fetch
并从遥控器获取所有当前对象。
您还可以使用git ls-remote
列出远程的所有分支,而无需从中获取任何内容。
答案 1 :(得分:2)
执行git branch -a
时,它仅显示已从远程存储库中提取的本地和远程跟踪分支。首先,您需要从远程存储库获取更新,然后您将能够列出新的远程跟踪分支:
git remote update
git branch -a
答案 2 :(得分:2)
我已经习惯于在pull
分支的情况下将fetch
分为merge
和master
:
git fetch origin
git log --graph --decorate --pretty=oneline --abbrev-commit --all
git merge origin/master
log
命令显然缩写为alias
答案 3 :(得分:2)
git branch
都会设计得很快。如果必须查询网络以检查其他人可能已添加的新分支,则会使其变慢。并且责任分离很糟糕:还有其他命令来执行网络操作。
要更新特定遥控器的分支列表,例如origin
,请执行git fetch
:
git fetch origin
之后,您将看到git branch -r
的新分支。
更新所有遥控器的远程分支:
git remote update