Question: A co-worker and I have been working on the same branch for a week, constantly pushing/pulling changes and all of a sudden today, I hit 'pull' to see if there were any changes I needed to pull and I got an error.

This is in sourcetree by the way. The error was this:

```
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
error: cannot lock ref 'refs/remotes/origin/angular_removal': unable to resolve reference 'refs/remotes/origin/angular_removal': reference broken
From https://bitbucket.org/colossus
 ! [new branch]        angular_removal -> origin/angular_removal  (unable to update local ref)

```

I'm in sourcetree, which has a terminal built in, but I can't seem to find a resolution here.

Answer: 
The accepted solution provides details only about how OP got around the issue and it is not a definitive answer. 

For the sake of people like me who end up here from Google, Here is the solution that actually works.

Lets say, if the error message looks like below,

```
error: cannot lock ref 'refs/remotes/origin/angular_removal': unable to resolve reference 'refs/remotes/origin/angular_removal': reference broken

```

Here, the offending element is a corrupted file named `refs/remotes/origin/angular_removal` which resides in the `.git` hidden folder.

Inorder to fix this, run the following commands under your repository root directory.

```
rm .git/refs/remotes/origin/angular_removal
git fsck

```

The first command alone should fix the issue as `git` tries to reinitialize the missing references. 

The command `git fsck` is to there just to check if the repository is in good health.

---

> 
> **NOTE** : The `ref` file would be of different for others. So make sure
>  you are using the `ref` file name from the error message that you got.\*\*
> 
> 
>
Multiple solutions didn't quite resolve it but I ended up re-cloning