SmartGit 25.1

What's New in SmartGit 25.1

AI Integration

Commit message generation and rewording

AI rewording: commit message generated in the background using @ai. | safeHTML }}

Let SmartGit craft clean commit messages for you. Generate on demand, or commit now and let AI finish the wording while you keep coding.

  • Click to generate – In the Commit Message view or Commit dialog, click the AI action to produce a clear, conventional message for your changes.
  • Background mode with @ai – Type @ai as the message and commit. Keep working; SmartGit will replace the placeholder with a proper message when the AI result arrives.
  • WIP friendly – Commit fast with a WIP (work in progress) placeholder. SmartGit later rewords it into a polished summary, so your history stays tidy.
  • Non-disruptive – Your code stays the same; only the commit message is updated.
Learn more 

Automatic Stash description

AI-generated stash message: checkbox in Save Stash and the resulting titled stash in the graph. | safeHTML }}

Skip the typing and keep your stashes searchable.

  • Auto description – Enable Create AI-generated stash message and stash without a message; SmartGit writes a clear summary for you.
  • Consistent names – Stashes in Branches and the Graph show a concise, change-based title, so you can find and reapply the right one fast.

Explain commits: summaries on demand

Explain Commit: AI summary generated and shown in the Commit view. | safeHTML }}

Need to catch up fast? Let SmartGit explain what has changed.

  • Right click > Explain Commit – Generate a concise Summary for the selected commit.
  • Multi-commit, concurrent – Select several commits and run Explain; SmartGit will generate all explanations in the background and store the result to Git Notes.
  • Diff-aware explanation – Uses the commit message and diff to highlight the intent and key changes.
Learn more 

Privacy first, by design

AI consent: SmartGit requests approval before sending code to an AI provider. | safeHTML }}

Some tools upload project data as soon as you invoke AI. SmartGit does not. It only sends data to the provider you choose when you explicitly allow it.

  • Explicit opt in – On the first AI request per repository and provider, a consent dialog appears; nothing is uploaded until you approve.
  • Granular control – Revoke later or disable globally at any time; switch providers whenever you need.
  • Limits and transparency – Configure diff context size, cap the maximum diff size, and enable debug logging to inspect exactly what is sent.

Your AI, Flexible Prompts and Git Notes

SmartGit connects to the AI of your choice. Pick a popular cloud provider or your in-company on-premise LLM, set it up once, and use it across all available AI applications.

Tune the tone with flexible prompts so messages read like from your team. Keep results where they matter by saving them as Git Notes – attached to the commits, visible in the Graph, and easy to share with your teammates.

Learn more 

General Improvements

Git Notes: first-class and configurable

Git Notes: select the notes namespace and see note icons in the Log graph and Commit details. | safeHTML }}

Git Notes are metadata you can attach to commits without changing them.

  • Pick your namespace – choose the refs/notes/ category and how notes appear in the Log graph.
  • Work in the UI – add, view, and edit notes; they show up in Commit details and the Graph.
  • Share and automate – push/fetch notes with the repo, and save AI explanations as notes.
Learn more 

Worktrees: smoother and safer

Worktrees: when a branch is already checked out, SmartGit opens that existing worktree. | safeHTML }}

Support for Git’s worktree feature has been improved in several ways:

  • See them at a glance – branches with own worktree are marked in the Log graph.
  • Smarter Checkout – if a branch is already checked out elsewhere, Checkout opens that worktree.
  • Manage in the UI – new Add, Remove, and Prune commands in the Standard window.
  • Prevent pitfalls – detect unknown or invalid worktrees early.
  • Accurate status detection – fixes for detecting the branch of rebasing or bisecting worktrees.

Octopus Merge

Octopus merge commit with more than two parents. | safeHTML }}
Octopus merge commits are merge commits with more than two parents. These can be created now either by merging directly multiple branches (into the current branch) or by amend-committing a merge to a merge commit.

SmartGit as Credential helper

SmartGit configured as a Git credential helper in Preferences and Repository Settings. | safeHTML }}

SmartGit can be configured in the preferences, Executables page, to work as Credential Helper for all commands invoked from SmartGit.

On top of that, it also is possible to use SmartGit as Credential Helper for shell scripts, other applications or Git command line – no need to configure authentication separately for such uses. Either select this option directly when cloning a repository, or enable it later in the Repository Settings.

Forced push: choose the right policy

Forced push policy: block, allow for feature branches, or allow for all branches. | safeHTML }}

You now have three options for handling forced pushes. Pick what fits your workflow.

  • Don’t allow forced pushes – Best for protected mainline branches (e.g., main, release) in shared or regulated projects where history must never change.
  • Allow forced pushes to feature branches (recommended) – Ideal for Feature Flow/Git Flow where short-living feature branches are rebased or squashed before merging. Lets contributors clean up history while still protecting mainline branches.
  • Allow forced pushes to all branches – Suits solo repos, scratch forks, or experimental work where maximum flexibility matters more than shared history safety.

Squash Commits of different authors

Squash commits and add Co-authored-by lines for additional authors. | safeHTML }}

Squash multiple commits of different authors without losing credit. Pick the author for the resulting commit and use Add co-authors to insert Co-authored-by: lines for all other authors.

More small helpers play together so shared work stays properly attributed:

  • Log > Details – copy any contributor’s name <email> and paste it where needed.
  • Edit Author – quickly paste name <email> when setting authorship.

LFS improvements: clearer states, faster refresh

Files view highlighting LFS pointer files with an 'LFS: Unexpanded' badge. | safeHTML }}

SmartGit 25.1 makes problematic LFS statuses obvious and speeds up common operations.

  • See unexpanded files – The Files view marks pointer files with an LFS: Unexpanded badge, so you immediately notice when objects are not inflated (e.g., if LFS is not installed).
  • Helpful tooltipsFiles shows a tooltip for LFS-inconsistent entries to explain what is wrong and how to fix it.
  • Faster refreshLFS Refresh is faster on repositories with large files.

All Features for non-commercial licenses

Open-source developers, academic users, and users at supported charitable institutions now have access to the complete SmartGit feature set – identical to paying customers.

Standard Window Improvements

Remote Management in All Branches + Tags

All Branches + Tags: manage remotes with Fetch, Rename, Delete, Copy URL, and Properties. | safeHTML }}

You can now access and manage remotes right from All Branches + Tags. Use the context menu to work with remotes alongside branches and tags.

  • Fetch – refresh remote refs without merging, ideal for a quick and selective update.
  • Rename – change the remote’s local name (e.g., origin to myhost), including related branches, without affecting others.
  • Delete – remove your local tracking of a remote; re-add it any time.
  • Copy URL – copy the remote URL to the clipboard for sharing or scripts.
  • Properties – view or edit the remote’s URL and related settings.

Tip: in the filter box, type remote to quickly show all remotes.

My History: Customize displayed Pull Requests

Standard window: filter Pull Requests to show 'My', 'My and Unassigned', All, or hide them. | safeHTML }}
You can now customize the Pull Request display. Use the new options to show ‘My’, ‘My and Unassigned’, or All pull requests, or choose to Don’t Show any pull requests, allowing you to focus on what needs your attention.

My History: Focused Rebasing Display

During a rebase, My History shows only rebase-relevant commits and hides irrelevant branches. | safeHTML }}

When rebasing, it is easy to get confused about different commits and branches. This is especially important if you have multiple local branches.

To overcome this, My History now hides irrelevant branches while in rebasing mode and shows only the rebase-relevant commits.

If you need to access hidden branches (e.g., to cherry-pick a commit), temporarily use All Branches + Tags.

Discard can now undo complete renames and delete untracked files

Discard can revert a rename to the original path and delete untracked files. | safeHTML }}

Clean up with one command.

  • Renamed files – Discard restores the file to its original name and path and drops any local edits, so your working tree matches HEAD again.
  • Untracked files – Discard can now delete them (with confirmation) – handy for generated or temporary files you don’t want to keep.

More Commands for Worktrees, Configure Tracking, Push-To

Standard window: new branch commands Push To, Set Tracked Branch, and Stop Tracking. | safeHTML }}

SmartGit 25.1 adds more branch commands to My History and All Branches + Tags, which you may already know from Log and Working Tree window.

  • Push To… – Push the current branch to a specific remote/branch, or create a new one there. Great for publishing a feature to upstream or a fork, or when you need a one-off target. Unlike regular Push, it targets a single remote and lets you choose the exact ref (including force if needed).
  • Set Tracked Branch… – Point your local branch to the correct upstream branch so Push/Pull know where to go and the UI can show ahead/behind. Use it when you renamed a branch or switched remotes.
  • Stop Tracking… – Remove the upstream setting so the branch is no longer tied to a remote; useful if the remote branch was deleted or you want to publish under a new name/remote next time you push.

These options make it easier to publish, retarget, and clean up branches without leaving the UI.

Preferences: managing API tokens and searching Low-Level Properties

Preferences: manage API tokens and reveal stored passwords with Show Password. | safeHTML }}

API tokens (GitHub and others) can now be accessed and managed directly in the Preferences. Both, tokens and passwords, can be viewed with the Show Password button.

The enhanced search now also includes Low-level Properties, making it easier to find and adjust advanced settings by name.

Update Check channels: tailored notifications

Preferences: choose Update Check channels and opt in to Quick Polls. | safeHTML }}

SmartGit 25.1 adds Update Check channels so you decide which notifications to receive. In Preferences > SmartGit Updates, select the topics that interest you in addition to the basic new-version alerts.

We recommend opting in to Quick Polls to take part in short surveys that help shape SmartGit’s future direction. You can change your choices at any time.

Illustration of Smart Gitty, the SmartGit mascot -- a grey cartoon cat with glasses, sitting behind a laptop