Releases: jesseduffield/lazygit
v0.44.1
What's Changed
Enhancements π₯
- With stacked branches, create fixup commit at the end of the branch it belongs to by @stefanhaller in #3892
- Add options for disabling switching to the Files panel after popping or applying a stash by @stefanhaller in #3913
Fixes π§
- Fix crash when viewing the divergence of a branch which is up to date with its upstream by @stefanhaller in #3918
Performance improvements π
- Improve performance with large numbers of untracked or modified files by @parthokunda in #3919
I18n π
- Update language files from Crowdin by @stefanhaller in #3898
New Contributors
- @parthokunda made their first contribution in #3919
Full Changelog: v0.44.0...v0.44.1
v0.44.0
What's Changed
Lots of great changes in this release. Thanks to everybody who contributed!
Enhancements π₯
- Per-repo config files (and reloading of edited config files) by @stefanhaller in #3787
- In addition to the global config file you can now create repo-specific config files inΒ
<repo>/.git/lazygit.yml
. Settings in these files override settings in the global config file. In addition, files calledΒ.lazygit.yml
Β in any of the parent directories of a repo will also be loaded; this can be useful if you have settings that you want to apply to a group of repositories. - We now also automatically apply (most) config changes without the need to restart lazygit
- In addition to the global config file you can now create repo-specific config files inΒ
- Easily view diff across range of commits by @stefanhaller in #3869
- If you select a range of commits, we now show the diff across the range (inclusive). This makes it easy to see the total changes across a number of commits. Likewise, if you press enter when a range of commits are selected, we will show the changed files for the range.
Screen.Recording.2024-09-07.at.12.29.15.pm.mov
- Support hyperlinks from pagers by @stefanhaller in #3825
- If you're using delta as a pager (which I highly recommend trying), you can now click on line numbers to go to that line in your editor by using the following config:
git: paging: colorArg: always pager: delta --paging=never --line-numbers --hyperlinks --hyperlinks-file-link-format="lazygit-edit://{path}:{line}"
Screen.Recording.2024-09-07.at.12.30.48.pm.mov
- Switch to Files panel after popping/applying a stash by @stefanhaller in #3888
- This is a nice quality of life improvement. You generally want to go straight to the files panel after you pop or apply from the stash
- Ask to auto-stage unstaged files when continuing a rebase after resolving conflicts by @stefanhaller in #3879
- Another quality of life improvement: often you resolve some conflicts, then make another couple changes, then in lazygit you say to continue and you get an error saying there are unstaged changes. Now instead of showing an error, lazygit asks if you want to stage those changes and continue.
- Offer autostash option when creating new branch by @brandondong in #3871
- Another great quality of life improvement
- Allow using shell aliases in interactive custom commands by @stefanhaller in #3793
- Switch tabs with panel jump keys by @stefanhaller in #3794
- If you've already been using the number keys (1-5) for jumping to specific side panels, you'll be pleased to know that you can now also use those keys for jumping to tabs within a side panel. E.g. to go to the reflog panel, you can now press 4 to jump to the commits panel, then 4 again to go to the reflog tab.
- Rename "Custom Command" to "Shell Command" by @stefanhaller in #3800
- There are two ways of invoking a 'custom' command in Lazygit: first by pre-defining a command in your config, and second by pressing ':' and typing in the command directly. We referred to both of these as 'custom commands' which was confusing. We now refer to the second approach as invoking a 'shell command'.
- Improve template placeholders for custom commands by @stefanhaller in #3809
- Now you can use
SelectedCommit
to refer to the selected commit regardless of which commits panel you're in (local commits, reflog, etc) - Likewise, you can use
SelectedPath
whether you're in the files panel or the commit-files panel.
- Now you can use
- feat(custom command): support multiple contexts within one command by @yam-liu in #3784
- You can now use a comma-separated list of contexts for which a custom command can be invoked. For example:
customCommands: - description: 'Add empty commit' key: 'E' context: 'commits,files'
- Improve mouse support for commit message panel by @stefanhaller in #3836
- Make auto-staging resolved conflicts optional by @stefanhaller in #3870
- If you set
git.autoStageResolvedConflicts
to false in your config, lazygit will no longer auto-stage files in which you've resolved merge conflicts.
- If you set
- Allow using
<
/>
and,
/.
in sticky range select mode in patch explorer by @stefanhaller in #3837 - Add Zed editor support to editorPreset by @susl in #3886
Fixes π§
- Allow GPG reword for last commit by @Neko-Box-Coder in #3815
- Don't exit app when GetRepoPaths call fails during startup by @ppoum in #3779
- Fix lack of icon when extension isn't lowercase by @hasecilu in #3810
- Fix redraw bug (stale content) in commits view by @stefanhaller in #3783
- Fix line coloring when using the delta pager by @stefanhaller in #3820
- Fix pressing escape after clicking in diff view by @stefanhaller in #3828
- Fix fast-forward issue caused by a conflicting tag name @Neko-Box-Coder in #3807
- Fix range select -> stage failure when deleted file is already staged by @brandondong in #3631
- Scroll views up if needed to show all their content by @stefanhaller in #3839
- Fix crash when filtering commits by @stefanhaller in #3838
- Fix cancelled autostash resulting in stuck inline status by @brandondong in #3860
- Don't allow opening a menu while the search or filter prompt is open by @stefanhaller in #3878
Maintenance βοΈ
- Reapply "Check for fixup commits on CI" by @stefanhaller in #3745
- Some cleanups for APIs related to contexts by @stefanhaller in #3808
- Improve fixup commits script by @jesseduffield in #3853
- Fix linter warnings by @stefanhaller in #3854
- Add codespell support (config, workflow to detect/not fix) and make it fix few typos by @yarikoptic in #3751
- Get rid of a lot of error return values by @stefanhaller in #3890
- Add a readme file for the JSON files in pkg/i18n/translations by @stefanhaller in #3781
New Contributors
- @yam-liu made their first contribution in #3784
- @ppoum made their first contribution in #3779
- @Neko-Box-Coder made their first contribution in #3815
- @yarikoptic made their first contribution in #3751
- @susl made their first contribution in #3886
Full Changelog: v0.43.1...v0.44.0
v0.43.1
What's Changed
Fixes π§
- Fix language auto detection by @stefanhaller in #3744
Full Changelog: v0.43.0...v0.43.1
v0.43.0
What's Changed
Thanks to all contributors who helped make this release happen! There's a lot of first-time contributors on this release as well so kudos to you all.
There's quite a few things in this release. I'm going to single out a couple that have changed my workflow.
Base branch stuff
lg-base-branch-demo.mov
Easier rebase onto base branch
(Add command to rebase onto base branch by @stefanhaller in #3615)
When my feature branch gets out of date with the main branch, I like to rebase it onto the main branch. Up until now, that's required:
- Navigating to the main branch
- Pressing 'f' to fast-forward it onto its upstream branch
- Pressing 'r' to rebase the checked-out branch onto the main branch
That takes too long! Now you can just press 'r' followed by 'b' to rebase onto the base branch (which defaults to origin/main).
See the divergence count from the base branch
(Divergence from base branch display by @stefanhaller in #3613)
You can now also configure to see the divergence from a branch and its base branch with the following config:
gui:
showDivergenceFromBaseBranch: arrowAndNumber # or 'onlyArrow'
This shows the divergence count in blue, next to the yellow count of divergence from the upstream branch. This is admittedly noisy, so it's an opt-in feature. But I think the noise is worth it.
If you set the config value to 'onlyArrow' it's a lot less noisy:
See detailed divergence from base branch
(Add command to show divergence from base branch as a left-right log by @stefanhaller in #3614)
By pressing 'u' then 'b' on a branch you can see the divergence view for that branch compared to its base branch
Improved 'Find commit for fixup' feature
(Improve the "Find base commit for fixup" command by @stefanhaller in #3602)
'Find commit for fixup' is not a very catchy name for this feature but I can't think of anything better at the moment. Nevertheless! The idea is that you often want to know for a given set of changes, which commit ought they be included in? Just press ctrl+f
when in the files panel and lazygit will jump the cursor to the appropriate commit to fixup.
With this release, the feature is smarter and more lenient so it's more likely to find you a match. If you haven't tried this out you should really give it a go!
find-commit-demo.mov
Other Enhancements π₯
- Add Squash merge by @noahfraiture in #3566
- Now when you press
shift+m
you get the option to do a regular merge or a squash merge. If you already have muscle memory for regular merge; don't worry: it's the same sequence of keypresses.
- Now when you press
- Improve "Find base commit for fixup" command when there are changes for master commits by @stefanhaller in #3645
- Allow setting the similarity threshold for detecting renames by @isti115 in #3025
- For this, press ')' and '(' to increase/decrease the similarity threshold.
similarity-demo.mov
- Reduce memory consumption when loading large number of commits by @stefanhaller in #3687
- 2-6x less memory usage when dealing with lots of commits. HUGE improvement.
- Focus on local commits view after moving code into new commit by @AzraelSec in #3577
- Add property outputTitle to CustomCommand by @stefanhaller in #3579
- Add user config
gui.expandedSidePanelWeight
by @stefanhaller in #3623- You can now increase the height of the selected side panel when you've configured the accordion effect
gui: expandFocusedSidePanel: true expandedSidePanelWeight: 3
- Support range select for amending commit attributes by @AzraelSec in #3587
- This lets you select a range of commits and update the author / set the co-author on all of them at once.
lg-multi-author-select.mov
- Show "exec" todos in the list of rebase todos by @stefanhaller in #3654
- Search the model instead of the view in the commits panel by @stefanhaller in #3642
- Add prompt to the remote branch checkout menu by @stefanhaller in #3652
- Always show the "Discard unchanged changes" menu item by @stefanhaller in #3683
- Show current value in menus by @stefanhaller in #3628
- Add command to paste commit message from clipboard by @WaterLemons2k in #3676
- Stagger popup panels by @stefanhaller in #3694
- Make commit author length configurable by @stefanhaller in #3688 (initial implementation by @anikiforov)
- Make opening git difftool more consistent by @part22 in #3691
- Update tracking behaviour for branches created from remote branches by @part22 in #3712
- Allow setting a default name when creating new branches by @elliotcubit in #3487
- Add Token credential request handling by @gmlexx in #3647
- Switch between multiple log views by @mkock in #3354
- Faster startup by @jwhitley in #3284
- Extend icon coverage on remotes and file extensions by @hasecilu in #3484
- Add nerdfont icons for .bicep & .bicepparam files by @scottmckendry in #3053
Fixes π§
- Fix tooltip for fixup command by @stefanhaller in #3601
- Fix pushing to branch when upstream not stored locally by @stefanhaller in #3619
- (#3618) Fix pushing a branch to remote with a different name causing error by @JordanllHarper in #3630
- Fix secondary window resize by @AzraelSec in #3637
- Fix truncation of branch names containing non-ASCII characters by @stefanhaller in #3685
- Fix duplicate keybinding suggestions in status bar after switching repos by @stefanhaller in #3660
- Fix PTY layout problems by @stefanhaller in #3658
- Fix custom patch operations for added files by @stefanhaller in #3684
- Improve render performance by @stefanhaller in #3686
- Fix wrong highlight in staging panel when entering file with only staged changes by @stefanhaller in #3667
- Always reapply filters on filtered views when model changes, even inactive ones by @stefanhaller in #3697
- Turn off the highlight of the suggestions panel when it loses focus by @stefanhaller in #3696
- Fix running lazygit with a language other than English on Windows by @stefanhaller in #3705
- Fix multi selection stage/discard not working for files with substrings by @brandondong in #3599
- Only add commit prefix if branch name matches regex pattern by @phaze-ZA in #3703
Maintenance βοΈ
- Add default lazygit config generation in Config.md from JSON schema by @karimkhaleel in #3565
- Remove hint about Config.md from PR template by @stefanhaller in #3578
- Add
copyloopvar
to enabled linters by @kyu08 in #3586 - Add
lint
to make target by @kyu08 in #3593 - Delete the TODO comment about enabling
goconst
in the future from.golangci.yml
by @kyu08 in #3596 - Pin golangci version to 1.58 by @stefanhaller in #3611
- Improve branch and reflog loading when sorting branches by date by @stefanhaller in #3609
- Fix boolean config keys not appearing in the generated Config.md by @stefanhaller in #3622
- Make profiling easier by @stefanhaller in #3634
- Update
rebase_onto
demo test to match new the rebase menu title by @AzraelSec in #3636 - Include demos when running integration tests on CI by @stefanha...
v0.42.0
It's time once again for a Lazygit release! This one is not as colossal as the prior release (and we intend to have smaller, more frequent releases in future) but there are plenty of good improvements here.
Thanks to all contributors who helped make this release happen! There's a lot of first-time contributors on this release as well so kudos to you all.
Thanks as usual to the wonderful @stefanhaller for creating/reviewing many of these changes, and thanks to @karimkhaleel who has also stepped up to help out with reviews.
What's Changed
Enhancements π₯
- Make spinner animation configurable by @belyakov-am in #3463
- Keep the same commit selected when exiting filtering mode by @stefanhaller in #3416
- Make URLs in confirmation panels clickable, and underline them by @stefanhaller in #3446
- Allow viewing all branches git log in status view by default @oakio in #3309
- Drop update-ref todos pointing to head by @stefanhaller in #3456
- Add config options for length of commit hash displayed in commits view by @oliviaBahr in #3505
- Show commit graph in divergence view by @stefanhaller in #3537
- Add commitPrefix config for defining a default commit message prefix across all projects by @duckbrain in #3291
- Improve
nvim-remote
(neovim) editor mode by @cmoog in #3508 - Delete and edit custom commands history items by @stefanhaller in #3534
- Support externalDiffCommand in diffing mode by @stefanhaller in #3519
Fixes π§
- Correctly request force-pushing in a triangular workflow by @stefanhaller in #3528
- Fix and speed-up stashing partial files for git version >= 2.35.0 by @dsolerh in #3569
- Improve delta pager performance by setting the
TERM
env variable by @bash in #3420 - Fix deleting update ref todos by @stefanhaller in #3439
- Fix crash when filtering the keybindings menu by @stefanhaller in #3450
- Fix excluding files in submodules or worktrees by @stefanhaller in #3432
- Fix rewording signed commits when the log.showsignature git config is true by @stefanhaller in #3431
- Better support for terminal based pinentry programs by @eldios in #3478
- Fix amend-to operation not working with non-HEAD merge commit by @brandondong in #3510
- Fix clicking in status side panel by @stefanhaller in #3547
- Fix loading commits with very long subjects by @stefanhaller in #3533
Maintenance βοΈ
- Migrate null keybindings to
<disabled>
, and remove our yaml fork by @stefanhaller in #3459 - Replace min/max helpers with built-in min/max by @Juneezee in #3482
- standardize commit hash commit sha by @pikomonde in #3398
- Bump go version to 1.22 by @jesseduffield in #3574
- Simplify error handling by @stefanhaller in #3502
- Use errors.New instead of fmt.Errorf with no parameters by @ChengenH in #3523
- chore: fix some comments and typos by @knowmost in #3535
- Fix deadlock reporting by @stefanhaller in #3550
- Only run code coverage report on non-fork branches by @jesseduffield in #3571
- pkg: fix some comment by @HongKuang in #3481
- sponsors.yml: Create PR instead of trying to push to a protected branch by @SachinVin in #3493
- pkg: fix some typos by @thirdkeyword in #3364
Docs π
- Update interactive rebase demo by @jesseduffield in #3392
- Update Busy.md by @eltociear in #3433
- Fix schema link in Config.md by @stefanhaller in #3451
New Contributors
- @bash made their first contribution in #3420
- @eltociear made their first contribution in #3433
- @belyakov-am made their first contribution in #3463
- @HongKuang made their first contribution in #3481
- @eldios made their first contribution in #3478
- @oakio made their first contribution in #3309
- @pikomonde made their first contribution in #3398
- @SachinVin made their first contribution in #3493
- @github-actions made their first contribution in #3498
- @thirdkeyword made their first contribution in #3364
- @brandondong made their first contribution in #3510
- @ChengenH made their first contribution in #3523
- @oliviaBahr made their first contribution in #3505
- @knowmost made their first contribution in #3535
- @duckbrain made their first contribution in #3291
- @dsolerh made their first contribution in #3569
- @cmoog made their first contribution in #3508
Full Changelog: v0.41.0...v0.42.0
v0.41.0
Hold on tight because this is a HUGE release! This release includes a whopping 595 commits from a period of over 7 months, from 40 different contributors. Thanks to everybody who made this possible, and apologies for taking so long to actually release it: we'll be more frequent in future!
Special thanks to Stefan Haller who is behind many of this release's changes and who has been critical in getting this release across the line.
I've made a video running through the big changes here:
What's Changed
Here's some highlighted features:
Range select
You can now press 'v' to toggle range select in any list view, just like you already could in the staging view. You can also press shift+up/down to select a range. You can use range select to:
- stage/discard a range of files
- select multiple commits to fixup/squash/move outside an interactive rebase
- select multiple commits to mark as fixup/squash/etc within an interactive rebase
- select multiple commit files to discard or add to a custom patch (courtesy of @afhoffman)
- select multiple commits to cherry-pick
I have been waiting for this feature for a very long time and it's already made me way more productive. If I need to squash a range of commits I can now easily do it directly rather than needing to squash them one-by-one, or needing to manually start an interactive rebase first. Likewise, it's much easier to select a range of files and stage them than stage them one-by-one.
This is a Breaking change: Unfortunately, the 'v' key clashes with the existing key for pasting commits (cherry-pick), so we've replaced that with shift+V and changed the commit copy key to shift+C. If you want the old keybindings back, you can do that like so:
keybinding:
universal:
toggleRangeSelect: <something other than v>
commits:
cherryPickCopy: 'c'
pasteCommits: 'v'
Auto-wrap in commit editor
The commit editor now automatically hard-wraps your content by default, so you no longer need to hit the enter key yourself when you approach the margin. You can disable/configure this in your config:
git:
commit:
autoWrapCommitMessage: true
autoWrapWidth: 72
Thanks to @stefanhaller for this feature.
Easier remote branch checkout
Now when you go to checkout a remote branch, either via the c
keybinding in the branches view or by pressing space
on a remote branch, you'll be given the choice to checkout as a local branch or as a detached head (previously it would just check it out as a detached head which typically isn't what you want). This is a Breaking change in terms of muscle memory.
Thanks to @stefanhaller for this feature.
Easier start interactive rebase
Previously, to start an interactive rebase, you would need to navigate to a base commit and press e
on it. Now you can simply press i
and regardless of which commit is selected, an interactive rebase will begin that includes all the commits on your branch (or if there are merge commits: all the commits up to first merge commit).
The above demo for range select showcases this.
Easier squashing of fixup!
commits
In a similar vein to the above section, now when you press shift+S
, you're given the choice of squashing all commits above the selected commit and squashing all commits on the branch, which is what you typically want. This is a Breaking change in terms of muscle memory.
Thanks to @stefanhaller for this feature.
View divergence from upstream branch
If you press u
on a local branch a menu appears which shows options relating to the branch's upstream. Now, the first option in that menu allows you to view the divergence from the upstream which shows commits to pull and commits to push
Thanks to @stefanhaller for this feature.
Find appropriate commit for fixup/amend
This one is some serious voodoo: if somebody suggests changes in a PR review, you'll often apply the changes, then go hunting for the appropriate commit to fixup/amend. Now, from the files view you can press ctrl+f
and if Lazygit can identify an appropriate commit with certainty, it will select that commit for you. Pretty cool!
We've made the algorithm very strict so that you can always trust the result, but this means in circumstances where we can't know for sure which commit is appropriate (such as when your changes only include added lines), it's left to you to manually find the commit. We're keen to get lots of feedback on this feature to see where the sweet spot is.
For more info see the docs
Thanks to @stefanhaller for this feature.
Delete remote branches/tags
Now when you press d
on a local branch, remote branch, or tag, you're given the option to delete that branch/tag in the remote.
Thanks to @AzraelSec for this feature.
Add co-author to commit
When you press a
on a commit an option now appears to add a co-author (something GitHub can read).
Thanks to @omaussa for this feature.
Filter commits by author
You can now filter commits by author via pressing ctrl+s
in the commits view and selecting the option to filter by author.
Thanks to @part22 for this feature.
Change branch sort order
You can now change branch sort order by pressing s
in the branches view (and remote branches view). By default local branches are sorted by 'recency' meaning how recently they were checked out, but you can now sort by head commit date and alphabetically.
Thanks to @hosaka for this feature.
Better bare repo support
We have fixed a bunch of bugs relating to bare repos so if you had issues with them in the past it should work fine now.
Thanks to @jwhitley for this feature.
Miscelleneous UI changes
- Unstaged files are now shown in white, not red, which is easier on the eyes
- Scrollbars are thinner (and, thus, cooler)
- Keybindings menu now has section headers (@stefanhaller)
- Error toasts now appear for some errors (less intrusive than popups) (@stefanhaller)
- Search history is now retained (@karimkhaleel)
- Git log is shown by default (@stefanhaller)
More Breaking Changes π₯
- When you press 'g' to bring up the git reset menu, the 'mixed' option is now the first and default, rather than 'soft'. This is because 'mixed' is the most commonly used option.
- Push/pull/fetch loading statuses are now shown against the branch rather than in a popup. This allows you to e.g. fetch multiple branches in parallel and see the status for each branch.
- The git log graph in the commits view is now always shown by default (previously it was only shown when the view was maximised). If you find this too noisy, you can change it back via
ctrl+L
-> 'Show git graph' -> 'when maximised' - Filtering (e.g. when pressing '/') is less fuzzy by default; it only matches substrings now. Multiple substrings can be matched by separating them with spaces. If you want to revert to the old behavior, set the following in your config:
gui:
filterMode: 'fuzzy'
What's Changed
All Enhancements π₯
- Add range selection ability on list contexts by @jesseduffield in #3207
- Allow deleting remote tags/branches from local tag/branch views by @AzraelSec in #2738
- Add command to show divergence from upstream by @stefanhaller in #2871
- Add 'Quick start interactive rebase' action by @jesseduffield in #3213
- Add command to open git difftool by @stefanhaller in #3156
- Support editing files in existing neovim instance by @jesseduffield in #2916
- Show commit mark before showing extra info by @jesseduffield in #2928
- Jump to middle of the view when selection leaves the visible area by @stefanhaller in #2915
- Add emacs-keybinds for word navigation by @horriblename in #2935
- Add
gui.scrollOffBehavior
config for scrolling list views by half-pages by @stefanhaller in #2939 - Switch to editor from commit message panel by @stefanhaller in #2881
- Select same commit again after pressing "e" to edit a commit by @stefanhaller in #2954
- Support custom keybindings for confirm discard by @mskelton in #2960
- Allow adding a port to webDomain part of services config by @raidora in #2908
- Add icons for files with .mdx and .svelte file extensions by @hrstmr in #2889
- Section headers in keybindings menu by @stefanhaller in #2911
- Check for staged files for "Amend commit" and "Create fixup commit" by @stefanhaller in #2970
- Add support for external diff commands (e.g. difftastic) by @stefanhaller in #2868
- Save diff context size in state.yml instead of config.yml by @stefanhaller in #2969
- Support to reset the current branch to a selected branch upstream by @Azrae...
v0.40.2
What's Changed
Fixes π§
- Fix seg-fault when opening submodule in nested folder by @jesseduffield in #2903
Full Changelog: v0.40.1...v0.40.2
v0.40.1
What's Changed
Fixes π§
- update worktree icons for NerdFont V3 by @Saafo in #2895
- Fix opening lazygit in a bare repo with specified worktree by @jesseduffield in #2902
Maintenance βοΈ
- Import stefanhaller's tcell fork for real rather than just replacing it by @stefanhaller in #2888
- Don't run the check-required-label check on master by @stefanhaller in #2896
- Use nerdfont version 3 in demos by @jesseduffield in #2901
Other Changes
- Fix README.md typo backkground -> background by @mattiasJohnson in #2884
New Contributors
- @mattiasJohnson made their first contribution in #2884
- @Saafo made their first contribution in #2895
Full Changelog: v0.40.0...v0.40.1
v0.40.0
π LAZYGIT FIVE YEAR ANNIVERSARY EDITION π
Holy moly, has it really been 5 years since Lazygit's birth? Time flies when you're having fun.
I've written a post celebrating the anniversary here.
As for this release, we've got some great features here.
Worktrees
We now have a worktrees view so you can easily create worktrees and switch to them and so on. I'm not a big worktrees user myself so please raise an issue if you can think of places to improve the UX.
Rebase --onto
Rebasing onto a marked base commit is a very useful feature that we've been sorely lacking for a while
(demo coming soon)
Auto-refresh on window focus
Auto-refresh on window activation is a complete game-changer. No more having to manually press shift+R when you come back from your editor.
Nuking the worktree
We also have a fun enhancement in this release: showing an explosion animation when you nuke the working tree.
You'll also notice in the readme we've got some updated demo gifs to showoff Lazygit's features. More of those to come.
What's Changed
Features β¨
- Add worktrees view by @jesseduffield (with help from @kadaan) in #2147
- Rebase onto branch from a marked base commit by @stefanhaller in #2835
- Auto-refresh on window activation by @stefanhaller in #2854
Enhancements π₯
- Speed up refresh by @jesseduffield in #2841
- Add os.copyToClipboardCmd to allow for a custom command #1055 by @redstreet in #2784
- Add bisect menu entry that lets you choose bisect terms by @stefanhaller in #2838
- When bisecting, always mark the current commit as good/bad, not the selected by @stefanhaller in #2837
- Visualize local branch heads in commits panel, 2nd approach by @stefanhaller in #2775
- Allow force-tagging if tag exists by @stefanhaller in #2827
- Save IgnoreWhitespaceInDiffView in state.yml by @stefanhaller in #2830
- Show loader when rebasing by @KarlHeitmann in #2851
- Internationalise logging of commands by @KarlHeitmann in #2852
- Show visual explosion effect when nuking worktree by @jesseduffield in #2861
Fixes π§
- Fix issue where using
null
to un-map a keybinding was ignored by @hatredholder in #2832 - Show error when trying to open patch menu with an empty patch by @stefanhaller in #2829
- Fix merge status for update-ref command by @stefanhaller in #2845
- Stop worktrees view from stealing the window by @jesseduffield in #2863
- Fix confirmation view sizing by @jesseduffield in #2879
Maintenance βοΈ
- Standardise on using lo for slice functions by @jesseduffield in #2846
- Remove redundant secureexec package by @jesseduffield in #2847
- Add automated demo recordings by @jesseduffield in #2853
- Remove file watcher code by @jesseduffield in #2865
- Add more demos to the README by @jesseduffield in #2866
- Move features to top of readme by @jesseduffield in #2867
- Add more demos by @jesseduffield in #2874
Other Changes
- Create demo output dir if it doesn't already exist by @jesseduffield in #2857
New Contributors
- @hatredholder made their first contribution in #2832
- @redstreet made their first contribution in #2784
- @kadaan made their first contribution in #2147
- @KarlHeitmann made their first contribution in #2851
Full Changelog: v0.39.4...v0.40.0
v0.39.4
What's Changed
Enhancements π₯
- Prompt for commit message when moving a custom patch to a new commit by @stefanhaller in #2800
Fixes π§
- Support typing special characters like '[' on non-english keyboards by @Calvin1602 in https://github.com//pull/2818
- Fix infinite wait on push/pull on windows by @jesseduffield in #2821
Docs π
New Contributors
- @cova-fe made their first contribution in #2811
- @Calvin1602 made their first contribution in #2818
Full Changelog: v0.39.3...v0.39.4