git - 为什么 Git 允许我创建两个同名的分支?

标签 git github

我对 Git 还是比较陌生,而且我的存储库有点乱。我希望有一种无需重新克隆即可修复它的方法。

我有一个从 Github 克隆的存储库。存储库有几个分支。我在 master 分支上工作了一段时间,但后来需要切换到其他分支之一。

所以,我有:

$ git branch --all
* master
  remotes/origin/abc
  remotes/origin/def
  remotes/origin/HEAD -> origin/master
  remotes/origin/ghi

问题:我想切换到“abc”分支,但我没有执行 git checkout remotes/origin/abc 我不小心执行了 git branch remotes/origin/abc 这给我留下了以下内容:

$ git branch --all
* master
  remotes/origin/abc
  remotes/origin/abc
  remotes/origin/def
  remotes/origin/HEAD -> origin/master
  remotes/origin/ghi

我的问题是:

  • Git 到底为什么允许你用相同的文件创建两个分支 姓名?
  • 如何确定哪个是真正的 remotes/origin/abc 分支?
  • 如何删除我创建的不需要的 remotes/origin/abc 事故?

非常感谢任何帮助。

最佳答案

您不能创建同名的两个本地分支或两个远程分支。

  • 这里有一个名为 remotes/origin/abc 的本地分支和一个位于远程 origin 上的名为 abc 的远程分支。它们的名称不同,但当您使用 git branch --all 命令时似乎是这样。

  • 要识别哪个分支是哪个分支,您可以使用 git branch 显示本地分支,或使用 git branch --remote 显示远程分支。即使使用带有分支语法着色的 git branch --all (git config --global color.branch auto),您也可以轻松区分它们。

  • 要删除意外创建的本地分支 abc,您必须执行 git branch -d abc(或 git branch -D abc 强制删除,参见 man git-branch)。

关于git - 为什么 Git 允许我创建两个同名的分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17359978/

相关文章:

git - 启用 2FA 时推送到 GitHub 存储库而无需个人访问 token

Github Insights 不显示特定用户提交

maven - 在 github 页面中包含基于 pom.xml 的版本号?

ruby-on-rails - 从 Git 重新开始

Android 工作室 - Gradle - GitHub repo

git - 当 git checkout 相同的文件时,docker 添加缓存

git - merge 两个完全不同的存储库

Git 撤消对文件的部分更改

没有 "Credential Manager"的 Windows 静默安装的 Git

git - 更新 fork 的 master 并将我的分支重新定位到它上面?