Skip to content

Releases: ThirtyTech/tt-git

v0.12.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 19:43

Install

Linux (x64, arm64) and macOS (Apple Silicon):

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.12.0/install.sh | TTGIT_VERSION=v0.12.0 sh

Windows (x64, arm64), in PowerShell:

$env:TTGIT_VERSION = 'v0.12.0'; irm https://github.com/ThirtyTech/tt-git/releases/download/v0.12.0/install.ps1 | iex

Desktop app

The desktop app, tt-git-gui, is a separate download. Each one also carries tt-git.

On Linux, the install script puts it in ~/.local:

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.12.0/install-gui.sh | TTGIT_VERSION=v0.12.0 sh

What's changed

  • One badge for a branch at its upstream. When a branch and its upstream
    point at the same commit, the graph shows one badge with a 🔗, like
    [main 🔗], instead of [main] and [origin/main] side by side. Once
    either side moves on, the two badges come back on their own commits.
    Graph
  • Merged branches still join in when merges are hidden. With merges hidden
    (m), the commit made after a merge takes the merge's place in the drawing,
    and the merged branch's lane curves into it, so you still see where each
    branch came in. Graph
  • Faster startup on Linux in big repos. tt-git now watches each folder on
    its own and skips the ones git ignores, so a repository with a large
    node_modules/ opens about as fast as one without, instead of staying blank
    for several seconds before the first draw.
    Refreshing

Full Changelog: v0.11.0...v0.12.0

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 16:57

Install

Linux (x64, arm64) and macOS (Apple Silicon):

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.11.0/install.sh | TTGIT_VERSION=v0.11.0 sh

Windows (x64, arm64), in PowerShell:

$env:TTGIT_VERSION = 'v0.11.0'; irm https://github.com/ThirtyTech/tt-git/releases/download/v0.11.0/install.ps1 | iex

Desktop app

The desktop app, tt-git-gui, is a separate download. Each one also carries tt-git.

On Linux, the install script puts it in ~/.local:

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.11.0/install-gui.sh | TTGIT_VERSION=v0.11.0 sh

What's changed

  • Copy the details text. c in the details pane copies what it shows (a commit, a diff, plugin logs), or the selection when there is one; it's in the right-click menu too. In the desktop app, drag to select the text and copy it with ctrl+c (cmd+c on macOS).
    Details · Selecting text
  • Plugin errors in the desktop app. Click a plugin's failure notice to open the plugin logs.
    Plugin errors
  • One copy of the desktop app. Running tt-git-gui <path> while the app is open hands the folder to the running copy, which opens or brings forward that repository's window. --new-instance starts a separate copy.
    One copy of the app
  • tt-git on your PATH on Windows. The desktop app's installer puts tt-git.exe in a bin folder and adds it to your PATH, unless you untick Add tt-git to PATH. tt-git update and install.ps1 leave that copy to the desktop app's updates.
    Install
  • Background fetch every minute. The default [fetch] interval is now 1 minute (3 minutes on battery), down from 5.
    Background fetch
  • Fixed: the desktop app's taskbar badge stayed after the window that set it closed, and on Windows plugin event commands (such as the Azure DevOps plugin's refresh) flashed a console window on each background fetch.

Full Changelog: v0.10.0...v0.11.0

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 02:11

Install

Linux (x64, arm64) and macOS (Apple Silicon):

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.10.0/install.sh | TTGIT_VERSION=v0.10.0 sh

Windows (x64, arm64), in PowerShell:

$env:TTGIT_VERSION = 'v0.10.0'; irm https://github.com/ThirtyTech/tt-git/releases/download/v0.10.0/install.ps1 | iex

Desktop app

The desktop app, tt-git-gui, is a separate download. Each one also carries tt-git.

On Linux, the install script puts it in ~/.local:

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.10.0/install-gui.sh | TTGIT_VERSION=v0.10.0 sh

What's changed

New

  • Desktop app. tt-git now comes as a desktop app too, tt-git-gui, with the same panes, keys and plugins as the terminal app in a window of its own. Installers for Windows, macOS (.dmg) and Linux (AppImage, .deb, .rpm, Arch package and a tarball) are on this release.
    Desktop app
    • A native style with rounded cards and your system's UI font, or the terminal look ([ui] style). Zoom with ctrl+= / ctrl+- / ctrl+0, and pick a font from the menu or palette.
    • Checks for updates once a day and updates in place.
    • Notifications for new commits while the window isn't focused, from a fetch or from another worktree or an agent, plus a badge on the taskbar, dock or Dock for new commits, conflicts or a stopped merge or rebase. Turn each alert on or off in the Notifications picker ([ui.alerts]).
    • Windows: a jump list of recent repositories and git progress on the taskbar button. macOS: a Dock menu, Open in tt-git in Finder, and Quick Look previews of a file with v / V. Linux: a launcher badge and a file manager entry.
      Install · Using it
  • Background fetch. While a repository is open, tt-git fetches every remote every 5 minutes, quietly, without asking for a password. It fetches less on battery and not at all in battery saver or on a metered connection. Set it with [fetch] interval and conserve.
    Background fetch
  • Push a branch without checking it out. P in the branches pane pushes the selected branch, setting its upstream on the first push. If the current branch has commits to push too, it asks which one.
    Pushing a branch
  • Hide merge commits. m in the graph hides and shows merge commits.
    Graph
  • About. The help popup has an About tab with the version and links.
    Navigation

Changed

  • Checking out a branch another worktree has opens that worktree instead of failing.
    Worktrees
  • Zooming status with + now shows status as a full-height column with the graph beside it.
    Status
  • The branches filter deletes the word before the cursor with ctrl+w.
  • On Windows, tt-git.exe has the app icon and fills in the Details tab of its Properties.

Fixed

  • tt-git update on Windows no longer fails when PowerShell 7's module path is set.

Full Changelog: v0.9.0...v0.10.0

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 02:11

Install

Linux (x64, arm64) and macOS (Apple Silicon):

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.9.0/install.sh | TTGIT_VERSION=v0.9.0 sh

Windows (x64, arm64), in PowerShell:

$env:TTGIT_VERSION = 'v0.9.0'; irm https://github.com/ThirtyTech/tt-git/releases/download/v0.9.0/install.ps1 | iex

What's changed

New

  • Reset. Press X in the graph or the branches pane to reset the current
    branch to a commit or branch, choosing soft, mixed or hard. A hard reset asks
    again and says which uncommitted changes are lost and how many commits leave
    the branch. Undo (z) takes it back the same way.
    Reset
  • Folder tree in Status. Press ` to switch between the flat list and a
    tree grouped by folder. Your choice is saved as status.tree. Enter folds a
    folder, and - and = fold or open them all. Space, d and i on a
    folder stage or unstage, discard or ignore everything under it, and details
    shows the folder's diff.
    Status
  • Ask an agent about a hunk. A in the staging view sends the selected hunk
    or lines to your agent. In details, A sends the hunk at the top of the diff.
    You can set the prompt with [agent] hunk_prompt, and actions with
    when = "hunk" (Explain change, Review change) are offered there.
    Agents
  • Search the whole message or the diff. ctrl+t in the graph's / prompt
    switches what the regex searches: the subject, the whole commit message, or
    the lines each commit adds or removes (git log -G). The graph's title shows
    which.
    Graph
  • Search in details. / searches the commit, stash or diff shown in
    details, jumping to matches as you type. n and N step through the
    matches. In the files view they go on to the next or previous file with a
    match.
    Details
  • Per-repository config. A repository can lay its own settings over your
    global config.toml, from .tt-git.toml in the working tree (committed) or
    tt-git.toml in the git dir (local, shared by worktrees).
    tt-git config path lists the files that apply.
    Configuration
  • Page details from the graph. shift+pageup and shift+pagedown scroll
    the details pane without leaving the graph.

Changed

  • / presets from your repo. When graph.message_presets is unset (now the
    default), tab in the / prompt steps through the 8 subject prefixes
    (feat:, fix(scope):…) used most in recent commits. A dotted rule
    separates them from the input.

Full Changelog: v0.8.1...v0.9.0

v0.8.1

Choose a tag to compare

@github-actions github-actions released this 24 Oct 21:09

Install

Linux (x64, arm64) and macOS (Apple Silicon):

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.8.1/install.sh | TTGIT_VERSION=v0.8.1 sh

Windows (x64, arm64), in PowerShell:

$env:TTGIT_VERSION = 'v0.8.1'; irm https://github.com/ThirtyTech/tt-git/releases/download/v0.8.1/install.ps1 | iex

What's changed

  • Merges stay dimmed in a filtered graph. Merge commits stay dimmed
    while you filter the graph by message (/) or author. Reverting a merge
    from a filtered graph now asks which side to keep, and cherry-picking a
    range there refuses one that includes a merge, the same as in the
    unfiltered graph.
    Graph

Full Changelog: v0.8.0...v0.8.1

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 20:29

Install

Linux (x64, arm64) and macOS (Apple Silicon):

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.8.0/install.sh | TTGIT_VERSION=v0.8.0 sh

Windows (x64, arm64), in PowerShell:

$env:TTGIT_VERSION = 'v0.8.0'; irm https://github.com/ThirtyTech/tt-git/releases/download/v0.8.0/install.ps1 | iex

What's changed

  • Filter the graph by message. Press / in the graph to filter commits by a
    regex on the subject, alongside the author and path filters. It ignores case
    unless the pattern has a capital. tab and shift+tab step through the
    presets in graph.message_presets (^feat, ^fix, ^docs and so on).
    Graph
  • Delete gone branches. Press D in the Branches pane to fetch with
    --prune and delete the local branches whose upstream was deleted on the
    remote. It asks first, keeps branches checked out in any worktree, and offers
    unmerged ones again with a second confirm before git branch -D.
    Branches
  • Step through commits in details. [ and ] show the newer or older
    commit without leaving details, moving the graph's selection and keeping the
    files view and fullscreen. On a stash they step through the Stash tab. The
    help bar now shows page down and page up.
    Details
  • Step through status files. On a working-tree file's diff and in the
    staging view, [ and ] move to the previous or next file in the status pane.
    Staging
  • ctrl+w in prompts. Deletes the word before the cursor in any text
    prompt, such as the message filter, new branch or commit.

Full Changelog: v0.7.0...v0.8.0

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 17:02

Install

Linux (x64, arm64) and macOS (Apple Silicon):

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.7.0/install.sh | TTGIT_VERSION=v0.7.0 sh

Windows (x64, arm64), in PowerShell:

$env:TTGIT_VERSION = 'v0.7.0'; irm https://github.com/ThirtyTech/tt-git/releases/download/v0.7.0/install.ps1 | iex

What's changed

  • Filter to the current folder. Started from a subfolder of a monorepo, press . in Graph or Status to show only the commits and changes inside that folder; press it again or esc to clear it. The title shows the filter (folder apps/web/), and the folder is also listed first in the f filter's File tab. Set graph.filter_to_cwd to start filtered, or use --filter-to-cwd / --no-filter-to-cwd for one run.
    • While Status is narrowed, a, D and s act only on the folder. Commit still takes everything staged, so the title warns when staged changes sit outside it.
      Graph

Full Changelog: v0.6.0...v0.7.0

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 01:41

Install

Linux (x64, arm64) and macOS (Apple Silicon):

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.6.0/install.sh | TTGIT_VERSION=v0.6.0 sh

Windows (x64, arm64), in PowerShell:

$env:TTGIT_VERSION = 'v0.6.0'; irm https://github.com/ThirtyTech/tt-git/releases/download/v0.6.0/install.ps1 | iex

What's changed

New

  • Revert a commit. Press R on a commit in the graph to revert it, after a confirmation. For a merge commit you choose which parent's side to keep. A conflict stops the revert, and you continue or abort it from the status pane.
    Graph
  • Cherry-pick a range. In the graph, v starts a range at the selected commit and moving extends it. C then applies every commit in the range, oldest first. A range that contains a merge commit is refused.
    Graph
  • Conflicts with the base branch. Branches and worktrees that would conflict with the base branch get a ✗n mark (n is the number of conflicting files), and the bottom border names the files for the selected row. The check runs in the background and doesn't touch the repository. It needs git 2.40, and branches.check_merges = false turns it off.
    Branches
  • Fast-forward without checking out. Press F in the branches pane to move a local branch to its upstream without switching to it. It refuses, with a message, for the checked-out branch, a branch with no upstream, a branch that's ahead or has diverged, and a branch checked out in another worktree.
    Branches
  • Discard everything. D in the status pane opens a dialog where you choose what to throw away: everything, unstaged changes, unstaged changes plus untracked files, or untracked files only. It shows what will be lost and what's kept first.
    Status
  • Ignore a file. i in the status pane adds the selected file, or its folder, to .gitignore or .git/info/exclude. If the path is tracked, it asks first and then untracks it.
    Status
  • Hide the graph lanes. L toggles the branch lanes in the graph, and graph.lanes sets the default.
    Graph
  • New plugin events. revert.completed and branch.fast_forwarded are new, and cherry_pick.completed now has a commits array.
    Events

Fixed

  • Worktrees changed outside tt-git. The worktree list now updates by itself when you add, remove, move, lock or prune a worktree in a shell. Before, you had to press ctrl+r. tt-git opened in a linked worktree also picks up branch and worktree changes made from the main one.
    Worktrees

Full Changelog: v0.5.0...v0.6.0

GitHub plugin v0.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 01:36

Install with: tt-git plugin install ThirtyTech/tt-git/plugins/github

What's changed

  • First release. Shows each branch's open GitHub pull request number in the branch list, and opens a branch's pull request in your browser. It works with github.com and GitHub Enterprise Server, and takes its token from gh auth token, GH_TOKEN or GITHUB_TOKEN. Needs tt-git 0.4.0 or later.
    GitHub plugin

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 22:03

Install

Linux (x64, arm64) and macOS (Apple Silicon):

curl -fsSL https://github.com/ThirtyTech/tt-git/releases/download/v0.5.0/install.sh | TTGIT_VERSION=v0.5.0 sh

Windows (x64, arm64), in PowerShell:

$env:TTGIT_VERSION = 'v0.5.0'; irm https://github.com/ThirtyTech/tt-git/releases/download/v0.5.0/install.ps1 | iex

What's changed

  • Color themes. Sixteen built-in themes, such as Catppuccin, Dracula,
    Gruvbox, Nord and Tokyo Night. Your own go in <config>/themes, in
    Omarchy's colors.toml format. Pick one with the Theme command in the
    palette. It previews each theme as you move through the list and saves the
    one you pick. theme = "omarchy" follows Omarchy's current theme and
    switches live when it changes, and theme_background = true paints the
    theme's background.
    Themes
  • Agent actions. Press A in the graph to ask an AI agent about the
    selected commit. Type a request, or tab through ready-made actions:
    resolve conflicts, explain commit, explain branch and review commit. The
    agent (claude by default) starts in a new herdr tab when tt-git runs
    inside herdr, or in place of the details pane otherwise. You can configure
    the command and add actions under [agent].
    Agent actions
  • Blame shows whether it's the latest. The title ends with latest,
    3 newer commits or not on HEAD. That way you can see how far back you've
    stepped. Blame
  • Commit counts on worktrees. Each worktree row shows ↑2 for commits it
    has that the base branch doesn't.
    Worktrees
  • Branch tabs from the graph. With the graph focused, ] and [ (or }
    and {) step the branches pane's tabs, and focus stays on the graph.
    Graph
  • Windows updates with tt-git running. tt-git update and the installer
    now work while other copies of tt-git are still running, even across
    several updates.
    Install

Full Changelog: v0.4.0...v0.5.0