'Git fatal: cannot lock ref
I'm trying to create a branch on the current branch on my Ubuntu guest. Unfortunately I keep getting this error:
git checkout -b origin/feature/IF-53-change-validation-window/Tommaso
fatal: cannot lock ref 'refs/heads/origin/feature/IF-53-change-validation-window/Tommaso':
'refs/heads/origin/branch' exists;
cannot create 'refs/heads/origin/branch/Tommaso'
I tried git gc --prune=now as suggested here link, but keep getting the same error.
Solution 1:[1]
You shouldn't be checking out branches that begin with "origin" or any other existing branch name.
Assuming that branch exists on origin, you should do the following:
git checkout feature/IF-53-change-validation-window/Tommaso
If you run git branch I expect you will see local branches with origin in the name.
The format git checkout X is shorthand for "look for a local branch X and check that out if it exists; otherwise look for a remote branch X and check that out locally (git checkout -b X origin/X)."
If you are creating a new local branch, you will often do the following:
git checkout -b new-branch
This will create a new branch pointing at the same commit as you had checked out previously.
To fix your current state, you can likely do this (see here):
git update-ref -d refs/heads/origin/branch
Solution 2:[2]
Sometimes this can happen if the name of the branch you create doesn't match git naming conventions or those set by you projects git administrator. Changing the name to one that does, can can fix this issue.
Solution 3:[3]
This worked for me :
git --no-optional-locks fetch --prune origin
Solution 4:[4]
I was looking for answer here, but actually my problem was simpler, yet unresolvable.
- fresh clone of repo
git checkout foo/bargit checkout -b foo/bar/baz- got similiar error message.
As described here, you cannot use foo/bar both as a branch and directory. I had to change proposed naming convention.
Solution 5:[5]
This happened with me too. The reason was, I was checking out a branch named feature, but in my local I already had a branch called feature/new-feature.
Solution 6:[6]
After trying some of the above solutions with no luck, this worked for me:
git gc --prune=now
Solution 7:[7]
This happend to me, too. The reason was that I tried to create a branch with a too deep directory. The deepest directory to successfully create was: origin/titleA/titleB/nameOfTheNewBranch and I first tried to create it one step deeper in origin/titleA/titleB/titleC/nameOfTheNewBranch which seemed to be too deep 'cause it does not work.
Solution 8:[8]
I just go a similar problem and the reason is, because of deleting the branch on the repo I couldn't access it to local so , what I do is delete the local branch and pull the new branch from the repo then create the feature branch and it did work
- if you delete the branch in the repo it is still available in local
Solution 9:[9]
refs/heads The HEAD file is usually a symbolic reference to the current branch. The so-called symbolic reference means that it is a pointer to another reference.
every branch you make(such as s/a/b/c/d) will create a path in refs/heads.
A file name d which save a SHA-1 values would be touch in the path: refs/heads/s/a/b/c/d
so the problem is, you made a branch named "origin/branch" already, so you can t make any branch named "origin/xxxxx" (or "origin/branch/xxxx") any more
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Chuck Le Butt |
| Solution 2 | Deepak |
| Solution 3 | MaTriXy |
| Solution 4 | kiciek |
| Solution 5 | Dharman |
| Solution 6 | General Mac |
| Solution 7 | Vanessa |
| Solution 8 | Fasika Walle |
| Solution 9 | ??? |
