v0.3.8
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'
.
- Suggested alias:
git branchless amend
: to amend changes into the current commit, and restack any descendants.- Suggested alias:
git config alias.amend 'branchless amend'
.
- Suggested alias:
- 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 thebranchless.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
andgit prev
accept-a
/--all
to take you all the way to a head or root commit for your commit stack, respectively.git next
andgit 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
andgit prev
accept-m
/--merge
to merge unstaged changes when checking out to the destination commit.git next
andgit prev
accept-f
/--force
to discard unstaged changes when checking out to the destination commit.git branchless init
warns if the configuration valuecore.hooksPath
is set.
Fixed
- (#151)
ORIG_HEAD
is populated correctly, which means that Git commands which write toORIG_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
, callinggit 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 beforegit 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!
- @jean-francois-labbe made their first contribution in #163
- @auscompgeek made their first contribution in #155
- @hmenke made their first contribution in #159
- @typesanitizer made their first contribution in #233
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.