10

我有一个 git 分支,每次执行“git pull”时,它都会不断地“重新创建”一个交替的字母大小写。假设分支名称是“a”(或据我所知为“A”),一个“git pull”将产生以下行:

* [new branch]      a       -> origin/a

然后下一个“git pull”将产生:

* [new branch]      A       -> origin/A

这永远不会停止。我不知道分支是如何创建的(或它的用途),因为其他人创建了它。

我如何驯服这个分支并让它停止这样做?

4

3 回答 3

7

如评论中所述,两者refs/heads/A和都refs/heads/a存在于遥控器上。这确实意味着那里存在两个不同的分支。(Git 本身是区分大小写的,大多数非 Windows 文件系统也是如此。)

但是,如果您使用的是 Windows,那可能会解释这个问题。参考文献被创建为单独的文件,每个参考文献一个。Git 在远程看到两者,但是当它尝试在本地更新它们时,只存在一个,所以总是创建另一个。这两个操作的内部顺序必须是这样,新创建的一个会覆盖另一个,从而导致交替。

如果 refs 指向同一个提交,那么解决方案是在远程删除其中一个:

git push origin :refs/heads/A
于 2011-05-16T19:11:30.030 回答
1

似乎 origin/a 和 origin/A 已在本地删除,因为您一直得到 [新分支]。如果有人或某事正在删除这些引用,则每次从远程获取(或拉取)时都会得到这些分支。您是否尝试过重新克隆存储库?你是唯一有这个问题的人吗?

于 2011-05-16T06:05:55.860 回答
1

我刚遇到这个问题。就我而言,其中一个分支名称与另一个分支名称直接下降,因此我从远程删除了较旧的分支,因为它没有增加任何价值。假设要删除的分支是“a”,那么这个命令将从远程(命名为“origin”)中删除它:

git push origin :a

几次抓取,问题就消失了(直到其他人再次推动它......)

于 2011-10-04T19:30:11.037 回答