重命名分支后无法打开FETCH_HEAD

时间:2017-08-22 19:30:23

标签: git github branch fetch atlassian-sourcetree

重命名'master'分支后(使用Sourcetree),我无法再获取远程存储库中所做的更改。

我收到错误:

error: cannot open .git/FETCH_HEAD: Permission denied

当我打开此文件时,我发现引用的分支仍然设置为branch 'master'

看一下远程存储库,我看到一个名为'master'的分支仍然存在,除了重命名的分支,我合并了我的上一次更改。我认为某处存在问题,并且远程存储库中未正确复制重命名。

我尝试手动编辑FETCH_HEAD(更改完整的SHA和指向的分支),但我仍然遇到此错误。当然,我不能像我的主分支那样重新命名,因为一个名为'master'的分支总是存在。

有解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:1)

事实上,似乎这个问题(可能)是由于各种因素的结合:

  1. 我实际上已经重命名了一个分支(但这似乎不是主要原因)
  2. 我还更新了用户名和电子邮件地址(这可以支持我作为其他用户执行各种操作的分析)
  3. 由于known bug of SourceTree(突然停止跟踪某些远程分支机构),某些分支机构无法获取;
  4. 由于使用chown命令似乎没有效果,我终于使用以下过程解决了我的问题:

    1. 使用rm -f .git/FETCH_HEAD命令删除被拒绝的文件(如this answer中所述)
    2. 使用git branch -u命令重新连接未跟踪的分支(如this comment中所述)
    3. 之后,我能够获取所有远程分支,现在,所有远程分支都与我的本地存储库正确同步。