David Y.
—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?
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
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODESConsidered “not bad” by 4 million developers and more than 100,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.