Git警告:refname'xxx'含糊不清

Nan*_*ore 19 git git-merge

我有两个分支'master'和'develop',我从master创建一个新的分支'hotfix-1'然后我将'hotfix-1'合并回master;

git checkout master
git merge --no-ff hotfix-1
Run Code Online (Sandbox Code Playgroud)

为这一点创建了一个标签;

git tag -a hotfix-1 -m ""
Run Code Online (Sandbox Code Playgroud)

然后我切换回从master开发分支并合并'hotfix-1';

git checkout develop
git merge --no-ff hotfix-1
Run Code Online (Sandbox Code Playgroud)

合并'hotfix-1'后开发我得到了"警告:refname'hotfix-1'含糊不清"的消息,它成功地将我的更改合并到了开发中 ......我应该担心什么吗?

编辑

git show-ref --heads --tags

d97bfc563749918799d4659c43f7bffd29cf4d60 refs/heads/develop
594ea85c94f8321d372779ed3dbd5df07bdb059b refs/heads/master
ffc897f8ab19510d5ff4c67969d0f0cb97d1c4f3 refs/tags/beta-1.0
490a8c80ecec70fd2268aa0c2ad7a9beb6bf491c refs/tags/beta-1.1
644adadb43744ad1d2e0f13fc37abb6906520f8f refs/tags/hotfix-1.0.1
4c49e8d9ddc8d601ed794f307e1c29acfc84b31b refs/tags/release-1.0
Run Code Online (Sandbox Code Playgroud)

Jos*_*uss 23

从您的原始问题看,您看起来有一个标签和一个名为的分支hotfix-1.当然,他们的真实名字是refs/tags/hotfix-1refs/heads/hotfix-1分别,但混帐允许你使用简写,在这种情况下是模糊的,因为Git的允许你使用任何committishgit merge声明.事实上,当我测试这个场景时,Git合并了标签,而不是分支.

git show-ref --heads --tags但是,在查看输出时,目前还不清楚,因为只有一个标记名称hotfix-1.0.1,而且没有相同名称的分支.看起来你可能随后改变了一些事情.


Ben*_*zer 5

这是一个例子,其中约瑟夫关于发生的事情的假设实际发生在我们身上.

git merge BranchyBranch_r2.1 warning: refname 'BranchyBranch_r2.1' is ambiguous.

实际上有一个标签和一个同名的分支(BranchyBranch_r2.1),最重要的是,有人试图通过别名复制分支的标签来缓解问题.

git show-ref --heads --tags ac729d902578378557f9f20dbd415c5748a23230 refs/heads/BranchyBranch_r2.1 9f3d242e03837fd33f8355005e9edbee89367bef refs/heads/develop 5995987876e6a2315544bd774b546ed561f78a53 refs/heads/master df26c94be018268e2897807c0750b5c66150750b refs/tags/BranchyBranch_r2.1 df26c94be018268e2897807c0750b5c66150750b refs/tags/BranchyBranch_r2.1Tag

如果您通过其完全限定名称引用分支,则可以继续.

git merge refs/heads/BranchyBranch_r2.1