Version Control System

Git config –global init.defaultBranch: Error cannot lock ref ‘refs/remotes/origin/windows’, not a directory


A branch in Git is simply a lightweight movable pointer to one of the commits. The default branch name in Git is master. As you start making commits, you’re given a master branch pointing to your last commit. Every time you commit, the master branch pointer moves forward automatically. The “master” branch in Git is not a special branch. It is exactly like any other branch. Nearly every repository has one because the git init command creates it by default, and most people don’t bother to change it.

Furthermore, Kindly refer to these related guides: How to install, register and start GitLab Runner on Windows, Panic: Failed to register the GitLab-runner, you may be having network issues, how to clone a repository and install software from GitHub on Windows, how to install and uninstall Docker Desktop on Windows 10 and Windows Server, and how to install Git on macOS.

If you wish to changes the defautlt branch, here are the steps in renaming the default branch. These steps will be discussed in details in a different guide;
- Change the branch name
- Set remote upstream tracking for the new branch
- Change the new branch name in repo host.

Encounter the following issue while executing a Git pipeline job. In this context, the error emerged as I used “master” instead of “main,” highlighting the significance of comprehending Git branches, including the default master branch in Git. You can see from the image below that various hinds were given. With these hints, I was able to resolve the issue very quickly. Kindly refer to this error: Cannot lock ref ‘refs/remotes/origin/windows’: unable to resolve reference ‘refs/remotes/origin/windows’, Not a directory!


Solution: This error can be resolved in different ways but understanding your environment will help.

In my case, I had to set git config --global init.defaultBranch main as suggested in “line 18” in the image above. The default branch’s name is main, not master.

git config --global init.defaultBranch main

Upon comprehending Git branches and the default master branch in Git, the problem was resolved by altering the git init default branch name, as indicated earlier. Should you continue encountering these errors even after correctly specifying the branch name, kindly proceed with the following steps.

Other Solutions:

If you’re familiar with Understanding Git Branches and the Default Master Branch in Git, and the branch name is accurate, it’s essential to prune the origin. You can eliminate references to remote branches within the directory by doing so. git/refs/remotes/origin. This will not affect your local branches, and it will not change anything remotely, but it will update the local references you have to remote branches.

git remote prune origin

If these solutions prove ineffective, explore additional steps at the provided link. Your understanding of Git branches and the default master branch in Git is crucial. Feel free to share questions in the comments section. Your feedback is greatly valued.

Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x