Developer Tools

How do I reset a Git branch?

Updated 2026-08-14

✓

Quick answer

To reset a Git branch, use the command 'git reset --hard <commit>' to move the branch pointer to a specific commit, discarding all changes after that commit.

This guide provides steps to reset a Git branch, along with potential caveats and frequently asked questions.

Steps

  1. 1

    Open Terminal

    Launch your terminal or command prompt.

  2. 2

    Navigate to Repository

    Use 'cd <repository-path>' to navigate to your Git repository.

  3. 3

    Identify Commit

    Find the commit hash you want to reset to by using 'git log'.

  4. 4

    Execute Reset Command

    Run 'git reset --hard <commit-hash>' to reset the branch to the specified commit.

Understanding Git Reset

The 'git reset' command changes the current branch head to the specified state. It can be used to discard commits, changes in the staging area, or both.

Types of Reset

'git reset' has three main modes: --soft (keeps changes staged), --mixed (keeps changes unstaged), and --hard (discards all changes). Choose the mode based on your needs.

When to Use Reset

Use 'git reset' when you want to undo commits or changes in your working directory. Be cautious as it can lead to data loss if used improperly.

Watch out for

  • Using 'git reset --hard' will permanently delete changes in your working directory that are not committed.
  • Make sure to back up any important changes before performing a reset.

FAQ

What happens to uncommitted changes after a hard reset?

All uncommitted changes will be lost after a hard reset.

Can I recover lost commits after a reset?

You can recover lost commits using 'git reflog' to find the commit hash and then reset back to it.

Is there a way to reset without losing changes?

Yes, you can use 'git reset --soft <commit>' to keep changes staged or 'git reset --mixed <commit>' to keep changes unstaged.