
Scenarios that can cause a detached HEAD state In this case, HEAD does not point to any branch-it references a commit. Continuing from the previous scenario, if you check out to the first commit on the main branch, you will see that HEAD is now detached. In Git, you can also check out a particular commit, which results in the detached HEAD state.

In both of the diagrams in the previous section, HEAD points to the most recent commit in the currently checked out branch, which is its normal state. In Git, the detached HEAD state occurs when the HEAD does not point to a branch, but instead points to a specific commit or the remote repository. You can create this scenario with the following Git commands: git branch feature Since you are checked out to the feature branch, HEAD points there. In this situation, you have two branches, the main branch and a feature branch. HEAD is also a common state when working with multiple branches. In this image, the HEAD points to the latest commit and current checked-out branch on every commit in the current branch. What is a normal HEAD stateīelow is a diagram of the Git HEAD in a normal state, pointing to the latest commit in the main branch.
Sourcetree discard committed changes how to#
Then, we will demonstrate how to save or discard changes in a detached head so you can quickly recover from the situation. In this article, we will explore what the Git detached HEAD state is and some situations that cause it. Complex commands and a less intuitive user interface can sometimes lead to unwanted states, including the detached HEAD state. However, learning Git is more complicated than it was with older systems. It is fast, scalable, and has more commands and flexibility than older version control systems (VCS). You can revert to previous commits in seconds if something goes wrong.
Sourcetree discard committed changes code#
It makes collaboration easier by allowing branching to keep code for different features separate and by seamlessly merging commits from multiple people. Git allows developers to maintain a history of changes (commits) to their code. If you want to keep the changes you made while in the detached HEAD state, you can solve this problem with three simple steps: creating a new branch, committing the changes, and merging the changes.

However, in a detached HEAD state, the HEAD does not point to any branch, but instead points to a specific commit or the remote repository.

In Git, HEAD refers to the currently checked-out branch’s latest commit. It is a strange phrase, but it’s not as alarming as it might sound. If you are one of the millions of developers who use Git, you may have come across the “detached HEAD state”.
