Skip to content

v0.3.8

Compare
Choose a tag to compare
@arxanas arxanas released this 05 Dec 03:03
· 1230 commits to master since this release
9016e77

To install or update git-branchless, run the following:

$ cargo install git-branchless
$ git branchless init  # in your repository

Release highlights

  • git next/git prev now take --all/--branch/--merge/--force options.
  • Added two new experimental commands:
    • git branchless checkout: to interactively check out a commit from the smartlog via fuzzy-finding.
      • Suggested alias: git config alias.co 'branchless checkout'.
    • git branchless amend: to amend changes into the current commit, and restack any descendants.
      • Suggested alias: git config alias.amend 'branchless amend'.
    • These commands are not aliased by default.
    • Thanks to @bcongdon for implementing these!
  • I started a Discord server for those who prefer more ephemeral discussion formats. Feel free to ask any workflow questions, etc. there.

Changelog

Added

  • New git branchless checkout command, which enables you to interactively pick a commit to checkout from the commits tracked in the smartlog.
  • git next accepts an --interactive flag which, if set, prompts which commit to advance to in ambiguous circumstances. This can be enabled by default with the branchless.next.interactive config setting.
  • References created for garbage collection purposes no longer appear in git log by default.
  • References created for garbage collection purposes are no longer generated unless you've run git branchless init in the repository.
  • git next and git prev accept -a/--all to take you all the way to a head or root commit for your commit stack, respectively.
  • git next and git prev accept -b/--branch to take you to the next or previous branch for your commit stack, respectively.
  • New git branchless amend command that amends the current HEAD commit, and automatically performs a restack.
  • git next and git prev accept -m/--merge to merge unstaged changes when checking out to the destination commit.
  • git next and git prev accept -f/--force to discard unstaged changes when checking out to the destination commit.
  • git branchless init warns if the configuration value core.hooksPath is set.

Fixed

  • (#151) ORIG_HEAD is populated correctly, which means that Git commands which write to ORIG_HEAD don't accidentally clobber unrelated branches.
  • (#155) git branchless init now appends to your existing hooks, rather than silently doing nothing.
  • (#172) When carrying out an on-disk rebase operation with git move, calling git rebase --abort will correctly reset the branch which you had checked out prior to the rebase.
  • (#209) git restack no longer resurrects commits which were created before git branchless init was run.
  • (#236) git restack no longer checks out back to an abandoned commit in some circumstances.

New Contributors

Thanks to the following first-time contributors!

I'd also like to thank several users for their high-quality discussions and bug reports, whom I don't list here because the list can't be automatically generated, and I'm afraid I'll omit someone. Your feedback is appreciated!

If you're interested in contributing, check out the Developer Guide in the Wiki, or post in the Discussions or Discord server to ask any questions.