Fix "detached HEAD" in Git

David Y.

The Problem

My Git repository reports that it is in “detached HEAD state”. I’m not sure what this means. How can I return my repository to normal?

The Solution

A Git repository is in detached HEAD state when the repository’s current state points to a commit not at the tip of a branch, or a commit in a remote branch that has not been fetched. For example, we might use git checkout to view the repository as it was at a previous commit, via a command like the following:

git checkout d809c7a # <-- shortened commit hash

To recover from a detached HEAD, we must return to one of our repository’s locally available branches. How we do this will depend on whether or not we’ve made changes we would like to keep while in detached HEAD state. If so, we must first create a new branch to save our changes:

git branch detached-changes

We then add and commit our changes to this new branch:

git add --all . git commit -m "Detached HEAD changes"

Finally, we can return to the branch we were previously on (probably master or main) and merge in the branch with our changes:

git checkout master git merge detached-changes

If we don’t want to save the changes made while in detached HEAD state, we can check out a branch directly:

git checkout master

Loved by over 4 million developers and more than 90,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

Share on Twitter
Bookmark this page
Ask a questionJoin the discussion

Related Answers

A better experience for your users. An easier life for your developers.

    TwitterGitHubDribbbleLinkedinDiscord
© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.