2.1.0 (2026-03-26)
- attach: allow manual attach for untracked files (8c7a4e2)
- blame: guard WinClosed namespace cleanup (#1469) (7c4faa3)
- blame: keep cursor line on reblame (6d72ba8), closes #1237
- blame: reuse buffer when opening diff tab (13588ac), closes #1490
- calculate line length correct with inlay hints (abf82a6)
- diff: respect -diff attributes in attach and setqflist (c21acb9), closes #1402
- diffthis: preserve fold state when staging hunks (e4d4ec8)
- git: force C locale for git parsing (f7cc685)
- git: parse renamed files with spaces (253962a)
- git: refresh cached repo head metadata (d95879a)
- git: serialize repo operations per repo (060b26c)
- luarocks: bump scm rockspec revision (d4fdf44), closes #1468
- qflist: keep renamed paths with base diffs (d9a3de6)
- qflist: sanitize NUL bytes before VimL conversion (97c6856)
- repo: update head_oid when checked-out branch moves (f222c40)
- statuscolumn: scope sign cache per buffer (eaf73f8), closes #1491
- status: suppress redundant GitSignsUpdate events (b8034e2), closes #1467
- typing (5dbe0f4)
- watcher: preserve slash branch names (0a80125)
- windows: normalize repo path comparisons (5310a7f)
- word_diff: "No newline at eof" should show once for single hunk (3121727)
- apply stage ops directly (2f71334)
2.0.0 (2026-01-09)
- config: remove support for custom highlight names
- setup: make optional
- target Nvim 0.11, drop testing for 0.9.5
- actions.blame: add
BlameOptsparameter (30ec2bb) - actions: add show_commit (6e3ee68)
- add basic gh integration (aa49c96), closes #839
- add diffthis options (93f882f), closes #1314
- blame: do not show hunk if it was added in commit (0ddad02)
- blame: general improvements (7bf01f0)
- cache: add support for fetching line ranges (#1414) (5813e48)
- config: remove support for custom highlight names (74fce28)
- diffthis: add some rename detection (8dec8da)
- enable new sign calc (40e235f)
- enhance status formatting with color codes (e9cfaa0)
- improve context for logging (4b2c9ab)
- minor improvements to logging (d62e3ee)
- move watchers to repo objects (2bf0f73)
- overhaul repo watcher (a772850)
- remove border from preview_config default (9a75d9f), closes #1241
- set buffer name for blame window (588264b)
- setqflist: improve text in list (b014331)
- setup: make optional (6933bee), closes #1222
- show: add navigation mappings (1ee5c1f)
- show: adjust output to include tree and parent (9dfa82c)
- support for statuscolumn (b2094c6)
- win_width: accept winid param (ace6c6c)
- #1246 (17ab794)
- #1274 (550757c)
- #1277 (c5a39b2)
- #1280 (4e1337a)
- #1300 (7ce11ab)
- #1307 (ab9e05d)
- #1312 (5624b5e)
- #1372 (83e29aa)
- #1384 (cc2e664)
- #1388 (c7d37ca)
- #1440 (5cdd276)
- #1457 (6a8dbf0), closes #1458
- actions: allow bufnr to be 0 (0d46562), closes #1422
- add a 2s timeout to the git lock (1bfeabd)
- add explicit tostring() for thread in string.format() for Lua 5.1 compatibility (#1461) (d6482eb)
- add WinResized handler to update blame window extmarks (ecd3717)
- all toggle actions didn't refresh highlight in non-active buffers (50a635b)
- always schedule after git commands (11b67da), closes #1425 #1460
- async: raise errors when they happen (ee7e50d)
- attach through symlinks (2ac55db)
- attach: do not attach to files in resolved gitdir (c80e0b4), closes #1218
- attach: don't skip all
.git*files at the root of the repo (362fe61) - blame incompatible neovim function (#1406) (400cfab)
- blame_line{full=true} stop work (27c3f37)
- blame: always update current_line_blame on WinResized (ea7c05f)
- blame: check valid buf (58e3e52)
- blame: close blame window on bufhidden (91f39eb)
- blame: do no expand hunk text (425cb39)
- blame: do not show stale blames popup (0c68263)
- blame: do not unpack hunk linespec (731b581)
- blame: get gh blame info asynchronously (a434c8c)
- blame: handle bad git-blame output (07d4263), closes #1332
- blame: handle partial lines in blame output (3d01bad), closes #1236
- blame: not stale if enter popup before result popup.update (bf77caa)
- blame: remove link highlight on whitespace (89f7507)
- blame: set nolist in the blame window (6067670)
- cache: correct condition for range blame (3f5ffea)
- calculate staged color dynamically adjust based on background (d16d4ed)
- check cwd before running rev-parse (a3f64d4), closes #1331
- check preview popup before navigating (e399f97)
- Close blame buffer on closure of source buffer (130beac)
- correct hl group (b79047e)
- cygpath output handling for MSYS2 environments (#1463) (8690d7a)
- do not attach if buffer is a directory (392b9da)
- do not attach to fugitive tree buffers (472f752)
- do not error if no gh remotes (736f51d)
- emmylua fixes (7bbc674)
- emmylua fixes (c9165bb)
- error when
Gitsigns next_hunk target=all(4666d04) - error: #1277 (9cd665f)
- errors nil ref (43b0c85)
- force release lock if we waiting for more than 4 seconds (24d4c92)
- handle files outside of repo (1796c7c), closes #1117 #1296 #1297
- handle when files are removed from index (fd50977)
- handle_blame_info: do not consider
wrap/nowrapforright_align/eol(75879cd) - make update lock disabled by default (8270378)
- more robust timer closing (72acb69)
- nvim<0.11 has no
&winborder(2f0f65e) - popup: don't move window when resizing (20ad441)
- prevent inline hunk preview from folding (02eafb1)
- preview_hunk format (8bdaccd)
- preview: set border to none for inline preview (7cfd88d)
- react to config changes more robustly (c4dbc36)
- remove border from docs (be7640c)
- remove clear_env=true for system calls (03fb621), closes #1350
- remove duplicated phrase in comments of util.lua (18ec9a8)
- repo memory leak (1fcaddc)
- respect winborder when creating popups (ce5e1b5)
- scm-rockspec: add 'plugin' to copy_directories (cdafc32)
- set more buf options in commit buffers (c8ddbdb)
- show: handle numeric branch name (0b3ac7a)
- tests for nightly (00f1418)
- tracking multiple branch changes (#1266) (2149fc2)
- type errors from emmylua (5f1b1e2)
- type errors from emmylua (d1c3d5a)
- type fixes (24ecb13)
- types: add on_attach return type (8b729e4)
- util.flatten: iterator table in order (45086b3)
- vim.ui.select with Snacks (f780609)
- watcher: invalidate the cache earlier (d600d39)
- when diff dos format with unix format (8820595)
- windows: #1250 (140ac64)
- word_diff: align inline preview highlights (684270f)
- word_diff: no "No newline at end of file" shown in popup (6bd2949)
- target Nvim 0.11, drop testing for 0.9.5 (3c76f7f)
1.0.2 (2025-03-16)
stage_hunkon staged hunk should behave likeundo_stage_hunk(5fefc7b)- change_base with empty base (751bfae)
1.0.1 (2025-02-15)
- blame: fix popup menu shortcut mappings (420b199), closes #1215
- current_line_blame: last line show not committed (8b00147), closes #1213
- stylua (2bc3b47)
1.0.0 (2025-02-07)
- deprecate some functions
- blame: replace dot with dash in blame file type name
- remove current_line_blame_formatter_opts
- remove support for yadm
- config: deprecate highlight groups in config.signs
- add highlights for the current line (b29cb58)
- add staging and update locks (e6e3c3a)
- add submodule support for gitsigns urls (f074844), closes #1095
- add type annotations for modules (ac5aba6)
- async: add async.pcall (562dc47)
- blame_line: add option to show when not focused (2667904)
- blame: add
Gitsigns blame(25b6ee4) - blame: add reblame at commit parent (f4928ba)
- blame: run formatter with pcall (9ca00df)
- blame: set filetype to gitsigns.blame (0dc8866), closes #1049
- config: deprecate highlight groups in config.signs (3d7e49c)
- config: improve deprecation message (fa42613)
- deprecate some functions (8b74e56)
- detect repo errors (899e993)
- nav: add target option (9291836)
- nicer errors for failed stages (9521fe8)
- remove current_line_blame_formatter_opts (92a8fbb)
- remove support for yadm (61f5b64)
- set bufname for commit buffers (e4efe9b)
- share Repo objects across buffers (2593efa)
- signs: able staged signs by default (b8cf5e8)
- signs: improve sign generation from hunks (2d2156a)
- tweak how commit buffers are processed (47c8e3e)
- use luajit buffers to serialize thread data (233bcbf)
- #1182 (632fda7)
- #1182 (take 2) (3868c17)
- #1185 (8fb9e75)
- #1185 (take 2) (fd7457f)
- #1185 (take 3) (f301005)
- #1187 (d8918f0)
- add cli binding for show (d9f997d)
- add nil check (9d80331)
- add nil check (7178d1a)
- attach: do not attach to fugitive directory buffers (cf1ffe6), closes #1198
- attach: resolve error viewing fugitive trees (#1058) (89a4dce)
- blame: ensure blame object is valid when all lines are requested (817bd84), closes #1156
- blame: handle incremental output with a buffered reader (e9c4187), closes #1084
- blame: include error message in error (d03a1c9)
- blame: parse blame info correctly (0595724), closes #1065
- blame: popupmenu error (93c38d9), closes #1061
- blame: render blame end_col out of range (aa12bb9)
- blame: replace dot with dash in blame file type name (0ed4669)
- blame: respect original blame winbar (d0db8ef)
- blame: restore original options when blame window is closed (564849a)
- blame: show current buffer line blame immediately (6b1a14e)
- blame: show same commit twice or more (#1136) (ee7634a)
- blame: show the winbar if the main window has it enabled (17e8fd6)
- blame: track buffers changes correctly in the cache (0349546)
- blame: update current_line_blame when attaching (8df63f2)
- change assert to eprint (7c27a30)
- derive Staged*Cul highlight correctly (1d2cb56)
- diffthis vertical option (dcdcfcb)
- do not mix staged signs with normal signs (9541f5e), closes #1152
- do not show staged signs for different bases (0edca9d), closes #1118
- docs: Add signs_staged to default config in README (d44a794)
- fileformat autocmd bug (f41b934), closes #1123
- get the repo version of the username (2e5719c)
- GitSignsChanged autocmd for staged hunks (ac38d78), closes #1168
- handle repos with no commits (0cd4f0a)
- handle terminal-only highlights (356df59)
- help triggering text autocmds (2a7b39f)
- improve support for worktrees in bare repos (6811483), closes #1160
- lint (39b5b6f)
- more EOL fixes (f10fdda), closes #1145
- nav: misc bugs (7516bac)
- nil check for repo cache (375c44b)
- nil check for repo info (e784e5a)
- partial staging of staged signs (31d2dcd)
- random errors from blame autocommands (#1139) (2d725fd)
- repo: make sure --git-dir is always provided --work-tree (310018d)
- reset diff when quiting diff buffer (b544bd6), closes #1155
- revision buffer name parsing for index buffers (76d88f3)
- select hunk gets all adjacent linematch hunks (abc6dec), closes #1133
- select_hunk: compatible with <cmd> mapping (8974fd3)
- setqflist("all") should respect change_base (58bd9e9)
- signs: avoid placing signs on lnum 0 (2f9f20e)
- sort get_nav_hunks to handle mixed hunk states (80214a8)
- string.buffer not found (8639036), closes #1126
- support blame for git < 2.41 (a5b801e), closes #1093
- toggle_current_line_blame (0e39e9a), closes #1072
- typo on dprint (6f8dbdb)
- upstream fixes for system() (c2a2739)
- use non-deprecated versions of vim.validate (0883d0f)
- use norm! to prevent user remapping (4daf702)
- util: ignore endofline when running blame (def49e4)
- wait for buffer to attach in M.show (1c128d4), closes #1091
- watcher: do not ignore any updates (5840f89)
- watcher: fix debounce (f846c50), closes #1046
- wipeout buf after closing the blame_line/preview_hunk window (abcd00a)
- blame: some improvements (9cdfcb5)
0.9.0 (2024-06-12)
- setup: make setup() synchronous
- drop support for nvim v0.8
- add workaround for Lazy issue (e31d214)
- attach: allow attaching inside .git/ (9cafac3), closes #923
- attach: detach on when the buffer name changes (75dc649), closes #1021
- attach: fix worktree attaching (54b9df4), closes #1020
- blame: avoid right-aligned blame overlapping buftext (20f305d)
- handle untracked files for custom bases (af3fdad), closes #1022
- scheduling in cwd watching (c96e3cf)
- update: always get object contents from object names (a28bb1d), closes #847
- use latest api in 0.10 (bc933d2)
- util: close file after reading (f65d1d8)
- watcher: throttle watcher handler (de18f6b)
- watcher: workaround weird annoying libuv bug (4b53134), closes #1027
- wrong api name in stable (805610a)
0.8.1 (2024-04-30)
- blame: check win is valid after running blame (7e38f07)
- reset: handle 'endofline' when resetting hunks (7aa9a56)
- yadm: correct ls-files check (035da03)
0.8.0 (2024-04-17)
- docs: Use the new attached_to_untracked setting
- change default of attached_to_untracked to false
- actions: add callback to async actions (4e90cf9)
- blame: add rev option to blame_line() (0994d89), closes #952
- blame: support extra options (3358280), closes #953 #959
- change default of attached_to_untracked to false (590d077)
- configurable auto attach (#918) (3e6e91b)
- enable the new version of inline_preview (d195f0c)
- nav: add nav_hunk() (59bdc18)
- popup: add
qkeymap to quit (b45ff86) - publish releases to luarocks (070875f)
- update issue templates (e93a158)
- yadm: deprecate (1bb277b)
- #986 (05226b4)
- #989 (36d961d)
- actions: prev_hunk works with wrap on line 1 (2b96835), closes #806
- attach to fugitive and gitsigns buffers (81369ed), closes #593
- bad deprecation message (a4db718), closes #965
- blame: check buffer still exists after loading (70584ff), closes #946
- blame: put ignore-revs-file in correct position (5f267aa), closes #975
- changedelete symbol with linematch enabled (41dc075)
- check bcache in get_hunks (1a50b94), closes #979 #981
- check for WinResized (c093623)
- cli: do not print result (7e31d81)
- current_line_blame: update on WinResized (f0733b7), closes #966
- diffthis: populate b:gitsigns_head (50577f0), closes #949
- do not error when cwd does not exist (826ad69)
- docs: Use the new attached_to_untracked setting (2c2463d)
- dos: correct check for dos files (aeab36f)
- followup (690f298)
- git: support older versions of git (4e34864)
- hl: highlights for Nvim v0.9 (fb9fd53), closes #939
- manager: manager.update() never resolve when buf_check() fails (6e05045)
- nav: followup for #976 (ee5b6ba)
- release-please branch (031abb0)
- setqflist: CLI (e20c96e), closes #907
- stage: staging of files with no nl at eof (c097cb2)
- trigger GitSignsUpdate autocmd more often (1389134)
- typo in README (4aaacbf)
- update lua-guide link in README (c5ff762)
- use documented highlight groups as fallback (300a306)
- version: handle version checks more gracefully (3cb0f84), closes #948 #960
- watcher: improve buffer check in handler (078041e)