The Commits panel displays the history of your repository. Each commit represents a snapshot of your project at a specific point in time.
The Commits panel shows:
| Field | Description |
|---|---|
| Message | The commit message |
| Author | Who created the commit |
| Hash | Unique identifier (short form shown) |
| Date | When the commit was created |
| Tags | Tags attached to the commit |
| Remote indicator | ⚡ shows commits not yet pushed |
Click on any commit to view its details:
When viewing branches, the commit list shows only commits on that branch. Select a different branch to see its history.
Click the filter button to search through commits:
| Filter | Description |
|---|---|
| Author | Filter by commit author |
| Message | Filter by commit message text |
| SHA | Filter by commit hash (partial) |
| From Date | Commits after this date |
| To Date | Commits before this date |
Click Clear Filters to remove all filters.
Commits with a ⚡ icon haven’t been pushed to the remote yet. These are “local” commits.
Tags appear as badges on commits. Common uses:
v1.0.0)Right-click on any commit for additional actions:
| Action | Description |
|---|---|
| New Branch… | Create a new branch at this commit |
| New Tag… | Create a tag at this commit |
| Tags | View, copy, delete, or push tags |
| Action | Description |
|---|---|
| Rebase ‘main’ to Here | Rebase current branch onto this commit |
| Reset ‘main’ to Here | Move branch pointer to this commit |
| Action | Description |
|---|---|
| Amend Commit… | Modify the most recent commit |
| Checkout Commit | Detach HEAD to this commit |
| Cherry-pick Commit… | Apply this commit to current branch |
| Revert Commit… | Create a new commit undoing this one |
| Save as Patch… | Export as a .patch file |
v1.0.0)Amending lets you modify the most recent commit:
⚠️ Warning: Amending rewrites history. Don’t amend commits that have been pushed to a shared branch.
Checking out a commit places you in a detached HEAD state:
Your HEAD now points directly to this commit, not a branch. Any new commits won’t belong to any branch.
💡 To save work done in detached HEAD state, create a new branch before committing.
Cherry-pick applies a commit’s changes to your current branch:
This is useful for:
Reverting creates a new commit that undoes the changes:
Unlike resetting, reverting is safe for shared branches because it doesn’t rewrite history.
Resetting moves the branch pointer to a different commit:
| Mode | Effect |
|---|---|
| Soft | Keeps changes staged |
| Mixed (default) | Keeps changes unstaged |
| Hard | Discards all changes |
⚠️ Warning: Hard reset permanently discards uncommitted changes.
Rebasing rewrites commits onto a different base:
⚠️ Warning: Rebasing rewrites history. Avoid on shared/public branches.
Export commits as .patch files:
This creates a file you can share or apply elsewhere with git apply.
git rebase --continue