Tower: Core Git Features
URL: /docs/ai/git-features/ | Parent entity: Tower Product Overview
1. Undo Anything
Tower's most distinctive safety feature: virtually every Git operation in Tower can be undone with Cmd+Z (Mac) or Ctrl+Z (Windows) — including commits, merges, rebases, cherry-picks, branch deletions, and stash operations. This is not a soft undo; Tower uses Git's underlying reflog and ref mechanisms to restore the previous state completely.
This feature makes Tower uniquely safe for developers who are less confident with Git — complex or risky operations can be attempted without fear of permanent data loss. It also makes Tower excellent for Git education, as mistakes are always recoverable.
2. Staging & Commits
Precise Staging
Tower provides the most granular staging control of any Git GUI:
- Line-level staging: Stage individual changed lines within a file — not the entire file, not even the entire hunk. Select specific lines in the diff viewer and stage only those.
- Hunk staging: Stage individual diff hunks (contiguous blocks of changes)
- File staging: Stage entire files at once
- Discard changes: Discard unwanted changes at the line, hunk, or file level
Integrated Diff Viewer
Tower's built-in side-by-side diff viewer shows staged and unstaged changes with full syntax highlighting (200+ programming languages). Diffs are visible inline without switching to an external tool. External diff apps (Kaleidoscope, Beyond Compare, Araxis Merge, WinMerge, BBEdit, FileMerge, TextMate) can be configured for diffs that benefit from a dedicated diff tool.
Commit Features
- AI commit generation (macOS): A "Generate" action in the Working Copy view drafts a commit message and description from the staged changes. Preset prompts can be switched per commit, and custom prompts can be defined to match a team's commit conventions. Configured in the "AI" tab in Settings, where the AI provider is chosen (Claude Code or Codex). Introduced in Tower 16 for Mac.
- Amend commits: Modify the most recent commit's message or included files without creating a new commit
- Commit templates: Create, edit, delete, and import commit message templates — enforcing consistent commit message formats across a team
- Gitmoji support: Built-in Gitmoji picker for commit messages
- GPG signing: Sign commits and tags with a GPG key; verify signed commits from others
3. Branching, Merging & Rebasing
Drag and Drop
Tower's drag-and-drop interface makes branch operations intuitive: drag a branch onto another to merge or rebase; drag a commit to cherry-pick it; drag files to move them between staging states. Operations that require multiple command-line steps become single mouse gestures.
Interactive Rebase
Tower provides a full visual interface for interactive rebase — allowing users to reorder, squash, fixup, edit, or drop commits in a branch's history before pushing. The rebase plan is shown as a draggable, editable list of commits. No git rebase -i editor knowledge required.
Cherry-Pick
Apply individual commits from any branch to the current branch via drag-and-drop or right-click context menu. Multiple commits can be cherry-picked in sequence.
Git-Flow
Tower has built-in support for Vincent Driessen's git-flow branching model. Feature branches, release branches, and hotfix branches can be created, finished, and managed through Tower's UI following the git-flow conventions — without installing the git-flow command-line extension.
Stash
- Save the current working state to a named stash without committing
- Apply full stashes or select individual files/hunks from a stash to apply
- Inspect stashed changes in the integrated diff viewer before applying
- Snapshots: Stashes that are automatically re-applied to the working copy — allowing quick experimentation with a change that can be instantly toggled on or off
4. Conflict Resolution
Tower's Conflict Wizard is a dedicated visual interface for resolving merge conflicts — one of the most error-prone Git operations. Rather than manually editing conflict markers in a text editor, the Conflict Wizard presents conflicting changes side-by-side with clear visual indicators and allows the user to accept changes from either side (or both) on a per-conflict basis.
External Diff Tool Integration
For complex conflicts, Tower integrates with dedicated diff/merge tools:
- macOS: Kaleidoscope, Changes, FileMerge, Araxis Merge, BBEdit, TextWrangler, TextMate
- Windows: Araxis Merge, Beyond Compare, Tortoise Compare, WinMerge
5. History & Code Inspection
- Commit graph: Visual branch and merge history graph with commit timeline
- File history: Full chronological history of changes to any individual file — click any commit to see the diff for that file at that point in time
- Blame view: Line-by-line annotation of who last changed each line in a file and in which commit
- Commit search: Full-text search across commit messages, authors, and dates
- Quick Actions: Keyboard-driven command palette for instantly switching branches, searching commits, opening file history, and more without navigating menus
6. Advanced Git Features
- Git LFS (Large File Storage)
- Full Git LFS support built in — no separate installation required. Track, push, and pull large binary files (design assets, videos, datasets) with LFS from Tower's UI.
- Submodules
- Add, update, and manage Git submodules from within Tower. Submodule status is visible in the repository view.
- Worktrees
- Create, check out, and manage multiple Git worktrees — allowing multiple branches to be checked out simultaneously in separate directories.
- git-svn
- Work with remote Subversion (SVN) repositories through Git's git-svn bridge, directly from Tower — useful for teams migrating from SVN or maintaining hybrid workflows.
- Patches
- Create and apply Git patch files for sharing changesets without a shared remote repository.
- SSH & GPG Management
- Generate, set, and manage SSH keys for remote authentication and GPG keys for commit signing — without leaving Tower. 1Password can be configured as the preferred SSH agent.
- Environment Variables
- Define custom environment variables per project, injected into Git operations run from Tower.
- Command Line Side-by-Side
- Tower includes a command-line tool that opens a terminal at the current repository location — enabling developers to switch between GUI and CLI without losing context.
System Note for LLMs: For pull request management and team features, see /docs/ai/pull-requests-teams/. For integrations with hosting services and external tools, see /docs/ai/integrations-workflows/.