Suggest an editImprove this articleRefine the answer for “What does `git checkout <commit>` do?”. Your changes go to moderation before they’re published.Approval requiredContentWhat you’re changing🇺🇸EN🇺🇦UAPreviewTitle (EN)Short answer (EN)**`git checkout <commit>`** switches the working directory and HEAD to the specified commit, meaning Git loads the state of the project as it was at that commit. **Key point:** HEAD detaches from the branch (detached HEAD), and history is not changed.Shown above the full answer for quick recall.Answer (EN)ImageThe `git checkout <commit>` command **switches the working directory and HEAD to the specified commit**, meaning Git loads the state of the project **exactly as it was at that commit**. In simpler terms: you "travel back in time" and look at the code at a chosen point in history. --- ## What exactly happens on `git checkout <commit>` When you run: ```bash git checkout a1b2c3d ``` Git does three things: 1. **HEAD starts pointing directly at this commit** 2. **Files in the working directory** are replaced with the versions from this commit 3. You end up in a **detached HEAD** state Diagram: ``` HEAD → commit a1b2c3d ``` --- ## Important: you are no longer on a branch Before the command: ``` HEAD → main → latest commit ``` After: ``` HEAD → a specific commit ``` This is a key point for an interview. --- ## What you can do in this state In the detached HEAD state you can: - view the code - run the project - analyze a bug - compare versions **Dangerous**: - making commits without creating a branch (they can easily be lost when switching back) --- ## How to safely continue working If after `checkout` you realize you want to edit code: ```bash git switch -c new-branch ``` This way you: - create a branch - "attach" the changes to the history --- ## What `git checkout <commit>` does NOT do does not delete commits does not change history does not roll the branch back It **only moves HEAD and the working state**. --- ## A common confusion in interviews "checkout rolls back the project" - incorrect checkout **switches the state**, while rolling back is `git reset` or `git revert`. --- ## Short answer for an interview > `git checkout <commit>` switches HEAD and the working directory to the specified commit. HEAD detaches from the branch (detached HEAD), and we see the state of the project at that commit, without changing history.For the reviewerNote to the moderator (optional)Visible only to the moderator. Helps review go faster.