git - 如何显示存储库中的所有分支?

标签 git

我有一个 Git 存储库。我怎样才能显示它的所有分支?

以下两个命令是否应该显示所有分支?如果是,为什么他们不显示分支 master?当询问 https://stackoverflow.com/questions/54160690/will-pushing-a-new-branch-to-another-repository-create-an-upstream-branch-and-re 时,我的印象是存储库没有分支 master .

$ git branch -a
  mongodbutils

$ git show-branch
[mongodbutils] mongodbutils

$ ls .git/refs/heads/
mongodbutils

为什么下面的命令会提到分支master

$ git show
fatal: your current branch 'master' does not have any commits yet

如何显示存储库中的所有分支(在本例中包括 master)?我认为这很重要,否则,我也会有同样的错误印象。

注意:仓库是由git init创建的一个空目录,然后我从另一个分支git push一个分支mongodbutils到这个分支机构。

最佳答案

作为documentation of git branch解释说,git branch --all(或-a)列出本地存储库中的所有分支,包括本地和远程跟踪分支。

Git 分支只是指向提交的指针。一个新的存储库(刚刚使用 git init 创建)不包含任何提交。新仓库的当前分支是 mastermaster 分支实际上并不存在。事实上,新的存储库不包含任何分支。

master 分支是在创建第一个提交时创建的。或者当它从远程存储库中 pull 出时。

因为您没有创建任何提交,也没有 pull master 分支,所以它不存在于您的 repo 中。您列出的两个命令都会向您显示这件事。

git branch -a 是您要用来列出分支的那个。

git show-branch 旨在供脚本和 GUI 工具使用。

关于git - 如何显示存储库中的所有分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54161556/

相关文章:

git - 省略了 82 个额外的提交,以防止出现性能问题。 GitLab

python - Openshift 墨盒部署到错误/旧应用程序

node.js - 具有对私有(private)存储库的只读访问权限的 GitHub 访问 token

git - 当 git 中忽略笔记本时,Jupytext 预提交配置

git - 使用 .gitignore 忽略子目录中的特定文件

git - TFS Git 项目中的依赖项目 VNEXT 构建

git - 自动更新子模块

angular - 在 Azure 中部署私有(private) npm 包

git - Jenkins:尝试使用 SSH pull 存储库时 Git 插件超时

git - 推送到远程仓库时如何使用不同的分支名称