現在受け入れ答えは、私は削除するリモートレポに参照を持っていなかったので、私を助けていなかった-それは私の地元で純粋でした!したがって、そのような状況にある場合は、次のようにします。
これは私が直面していた問題です:
$ git fetch origin
error: cannot lock ref 'refs/remotes/origin/fix/sub-branch':
'refs/remotes/origin/fix' exists; cannot create
'refs/remotes/origin/fix/sub-branch'
From <repo URL>
! [new branch] fix/sub-branch -> origin/fix/sub-branch
(unable to update local ref)
私は受け入れられた答えの提案を試しましたが、これを手に入れました:
$ git push origin :fix
error: unable to delete 'fix': remote ref does not exist
error: failed to push some refs to <repo URL>
したがって、refは存在しませんでしたorigin
-それは明らかに私のローカルリポジトリのどこかにぶら下がっていました。だから私は走りました$ git remote show me
、それは以下を生み出しました:
Remote branches:
...
refs/remotes/origin/fix stale (use 'git remote prune' to remove)
...
これにより、解決策が明確になりました。
$ git remote prune origin
Pruning origin
URL: <redacted>
* [pruned] origin/fix
これで、問題は消えました:
$ git fetch origin
remote: Counting objects: 5, done.
remote: Total 5 (delta 2), reused 2 (delta 2), pack-reused 3
Unpacking objects: 100% (5/5), done.
From <repo URL>
* [new branch] fix/sub-branch -> origin/fix/sub-branch