【问题标题】:Error on branch creation: "warning: refname 'master' is ambiguous."分支创建错误:“警告:refname 'master' 不明确。”
【发布时间】:2011-07-13 21:44:49
【问题描述】:

我在 Git 存储库中管理了一个简单的项目。到目前为止,我还没有故意创建任何分支,但是当我尝试使用今天创建我的第一个分支时

$ git branch mybranch

我看到了这个错误:

warning: refname 'master' is ambiguous.
fatal: Ambiguous object name: 'master'.

深入挖掘:

$ git branch -a          
* master
remotes/master/HEAD -> master/master
remotes/master/master

这在 Git 中是否正常?我是否错误地克隆了我的存储库?解决此问题的最佳方法是什么?

【问题讨论】:

  • 克隆时您确实做了一些奇怪的事情。要正确克隆,请使用git clone [url] [destination path]。如需更多诊断帮助,请发布您在运行时获得的信息git config -l
  • 谢谢马克,我得到:core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true core.ignorecase=true remote.master.fetch=+refs/heads/ *:refs/remotes/master/* remote.master.url=git@github.com:###/###.git branch.master.remote=master branch.master.merge=refs/heads/master跨度>

标签: git git-branch


【解决方案1】:

这似乎是模棱两可的,因为你的远程名称和分支名称都是master。您可以尝试通过运行将遥控器重命名为更传统的origin

git remote rename master origin

【讨论】:

    【解决方案2】:

    如何解释修订规范的规则在gitrevisions(7) 中给出(引用自git(1),以及其他一些文档)。

    简而言之,master 在应用于存储库中的引用时匹配两种模式:本地分支 (refs/heads/<name>) 和远程的默认远程跟踪分支 (refs/remotes/<name>/HEAD)。

    这些可以通过使用heads/master 用于本地分支和master/HEAD(或master/master 在您的情况下)用于远程跟踪分支来消除歧义。

    正如Andrew Marshall 所提到的,您可能希望重命名您的遥控器以避免一开始就必须消除歧义。

    【讨论】:

    • +1 用于参考解释这一点的文档。我希望 git 没有尝试 refs/remotes/<name>/HEAD - 它只会让那些不太确定遥控器和分支是什么的人感到困惑,而对于任何理解其中区别的人来说几乎没有什么好处......
    【解决方案3】:

    在我的情况下,HEAD 分支是模棱两可的,通过使用删除本地分支解决了

    git branch -d HEAD
    

    可能需要在不丢失更改之前推送更改

    【讨论】:

      猜你喜欢
      • 2022-06-17
      • 2012-08-26
      • 1970-01-01
      • 2014-11-20
      • 2012-11-27
      • 1970-01-01
      • 2015-10-05
      • 2012-10-15
      • 1970-01-01
      相关资源
      最近更新 更多