重命名分支后无法打开 FETCH_HEAD
Cannot open FETCH_HEAD after renaming a branch
重命名 'master' 分支(使用 Sourcetree)后,我无法再获取远程存储库中所做的更改。
我收到错误:
error: cannot open .git/FETCH_HEAD: Permission denied
当我打开这个文件时,我看到引用的分支仍然设置为 branch 'master'
。
查看远程存储库,我看到一个名为 'master' 的分支仍然存在,此外还有我合并上次更改的重命名分支。我认为某处有问题,重命名没有在远程存储库中正确复制。
我已尝试手动编辑 FETCH_HEAD
(更改完整的 SHA 和指向的分支),但我仍然遇到此错误。当然,我不能像在主分支之前那样再次重命名,因为名为 'master' 的分支始终存在。
有办法解决这个问题吗?
事实上,这个问题似乎(可能)是由于各种因素的结合造成的:
- 我实际上已经重命名了一个分支(但这似乎不是主要原因)
- 我也更新了用户名和邮箱地址(这可以支持分析我作为其他用户进行了各种操作)
- 由于known bug of SourceTree(突然停止跟踪某些远程分支),某些分支肯定无法获取
由于使用chown
命令似乎没有效果,我终于使用以下过程解决了我的问题:
- 使用命令
rm -f .git/FETCH_HEAD
删除被拒绝的文件(如 this answer 中所述)
- 使用命令
git branch -u
重新连接未跟踪的分支(如 this comment 中所述)
在那之后,我能够获取所有远程分支,现在,所有分支都与我的本地存储库正确同步。
重命名 'master' 分支(使用 Sourcetree)后,我无法再获取远程存储库中所做的更改。
我收到错误:
error: cannot open .git/FETCH_HEAD: Permission denied
当我打开这个文件时,我看到引用的分支仍然设置为 branch 'master'
。
查看远程存储库,我看到一个名为 'master' 的分支仍然存在,此外还有我合并上次更改的重命名分支。我认为某处有问题,重命名没有在远程存储库中正确复制。
我已尝试手动编辑 FETCH_HEAD
(更改完整的 SHA 和指向的分支),但我仍然遇到此错误。当然,我不能像在主分支之前那样再次重命名,因为名为 'master' 的分支始终存在。
有办法解决这个问题吗?
事实上,这个问题似乎(可能)是由于各种因素的结合造成的:
- 我实际上已经重命名了一个分支(但这似乎不是主要原因)
- 我也更新了用户名和邮箱地址(这可以支持分析我作为其他用户进行了各种操作)
- 由于known bug of SourceTree(突然停止跟踪某些远程分支),某些分支肯定无法获取
由于使用chown
命令似乎没有效果,我终于使用以下过程解决了我的问题:
- 使用命令
rm -f .git/FETCH_HEAD
删除被拒绝的文件(如 this answer 中所述) - 使用命令
git branch -u
重新连接未跟踪的分支(如 this comment 中所述)
在那之后,我能够获取所有远程分支,现在,所有分支都与我的本地存储库正确同步。