在Git中删除损坏的名称(dropbox冲突的副本)

时间:2015-03-06 07:36:54

标签: git dropbox

我将我的回购保存在Dropbox中,有一天(见下面的日期)它疯了。现在,每当我尝试自动填充分支名称时,我都会收到这些警告

warning: ignoring ref with broken name refs/heads/develop (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/heads/master (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/origin/develop (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/origin/master (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/production/master (MacBook Pro's conflicted copy 2015-02-28)

如何修复这些警告?

注意:对于所有重复触发快乐的人 - 这不是重复!我只想删除上面的引用以停止获取警告。 git repo完好无损

3 个答案:

答案 0 :(得分:27)

当dropbox找到有冲突的文件时,会将这些文件重命名为filename (conflicted copy)(您可能知道)。所以你只需要重命名这些文件:

这可能是一个相当微妙的练习,因为你会搞乱你的git目录;最好首先获取整个存储库的副本。现在进入这个目录

cd <repo>/.git/refs/heads

您将在那里找到那些重命名的文件。您必须检查要保留哪一个(正常或相互冲突的副本),并删除不需要的,根据需要重命名冲突的副本。你必须在另一个目录中做同样的事情:

  • /。GIT中/参/遥控器

修改 您将找到的每个文件都包含它们指向的提交的哈希值。所以,如果你想检查要保留哪一个;检查哪些提交确实存在,以及这些引用指向的位置。

答案 1 :(得分:1)

我可能在更新我的git版本(ubuntu 15.04到15.10)之后得到了这个警告,并且只需要删除.git / refs / remotes中的目录,用于旧的悬挂式遥控器我不再实际配置。

答案 2 :(得分:0)

我通过运行

修剪了不再在遥控器上的分支
git remote prune origin

这解决了我的问题。