Skip to content

v1.4.1 - Find It, Fix It, Ship It

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Aug 20:25
· 3 commits to main since this release
fc53949

What's Changed

  • Search commit content. The graph filter now searches inside diffs, not just messages and metadata: find commits that added or removed a piece of text, with an optional regular-expression mode. Results stream in while the search runs, and the filter row reports progress and an empty state.

  • Edit and copy commit messages. "Edit message…" and copy actions were added to the graph context menu and the commit details panel. HEAD is amended in place with --only, so staged changes are not swept into the amend; an older commit is reworded through an interactive rebase, and a commit that is not an ancestor of HEAD is refused. Rewriting a commit that already exists on a remote warns first, naming the branches that will need a force push.

  • Two long-standing bugs in the reword path were fixed along the way: a multi-line message split the rebase todo across lines that git read as separate instructions, and a plan spanning a merge commit left the repository mid-rebase with a detached HEAD. Rewording now preserves an existing signature instead of dropping it.

  • Rebase editor, reworked. The interactive-rebase modal now opens on a single whole-branch choice — move the commits as they are, or fold them into one — and only unfolds the per-commit table (action, drag-to-reorder, inline reword) when you ask to customize. Every action carries a plain-language description, so nobody has to already know what fixup does. Plans git would reject, such as a squash with nothing above it to squash into, are caught and explained before the rebase starts rather than failing partway through.

  • Rebase can now sign every replayed commit, and commit signatures are preserved across rebase and reword.

  • Delete remote branches. Delete a branch on the remote from its remote-tracking row, or remove a tracking branch locally and on the remote in one confirmed step.

  • Fetch no longer blocks everything else. Fetching runs in its own lane, so a fetch — including an auto-fetch tick — never blocks a commit, a branch create or a push.

  • Cancel a stuck network operation. The running operation is named in the status bar with a cancel button, so a fetch or push against a remote that stopped answering can be abandoned instead of waited out. Network commands also carry SSH connect and keepalive timeouts, so a dead host fails in seconds rather than minutes; any GIT_SSH_COMMAND or core.sshCommand you already set is kept.

  • Continue a cherry-pick or revert after conflicts. A conflicting cherry-pick or revert used to abort itself, leaving a terminal as the only way to keep the work. Both now pause into the Merge Tool the way a rebase does, and finishing there continues the sequence — including the --skip path for when the staged resolution leaves nothing to commit. A pick left paused by an earlier run is detected on open (CHERRY_PICK_HEAD / REVERT_HEAD) and stays continuable. Starting a new pick while one is paused is refused: git reports "already in progress" with the previous operation's conflicts still in the tree, which would relabel the open session with the new commit and misdirect its undo.

Full Changelog: v1.4.0...v1.4.1

Full Changelog: v1.4.1...v1.4.1