https://github.com/Salanoid/gitlogdiff.nvim
Diff between multiple git commits, similar to JetBrains's git log.
https://github.com/Salanoid/gitlogdiff.nvim
git git-log git-status neovim neovim-git neovim-plugin
Last synced: 22 days ago
JSON representation
Diff between multiple git commits, similar to JetBrains's git log.
- Host: GitHub
- URL: https://github.com/Salanoid/gitlogdiff.nvim
- Owner: Salanoid
- License: mit
- Created: 2025-12-17T08:03:00.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-01-08T09:00:20.000Z (about 1 month ago)
- Last Synced: 2026-01-13T21:58:40.996Z (29 days ago)
- Topics: git, git-log, git-status, neovim, neovim-git, neovim-plugin
- Language: Lua
- Homepage:
- Size: 25.4 KB
- Stars: 9
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-neovim-sorted - Salanoid/gitlogdiff.nvim
- awesome-neovim - Salanoid/gitlogdiff.nvim - Diff between multiple Git commits, similar to JetBrains's Git log. (Git / Quickfix)
README
# gitlogdiff.nvim
[](https://github.com/Salanoid/gitlogdiff.nvim/actions/workflows/ci.yml)
A tiny Neovim plugin that shows a simple, keyboard‑driven list of recent Git commits and lets you diff them quickly via Diffview.
Works great for: “show me the last N commits, let me pick one (or two) and open the diff”.

## Features
- Lists recent commits using `git log` (configurable `max_count`)
- Toggle selection with space, navigate with `j/k`
- Press Enter to open diffs in [diffview.nvim]
- 1 selected commit → diff that commit against its parent (`^..`)
- 2 selected commits → diff between the two commits
## Requirements
- Neovim ≥ 0.10 (uses `vim.system`)
- Git available on your `$PATH`
- Dependencies:
- [sindrets/diffview.nvim]
- [folke/snacks.nvim]
## Installation
### lazy.nvim
```lua
{
"Salanoid/gitlogdiff.nvim",
main = "gitlogdiff",
dependencies = {
"sindrets/diffview.nvim",
"folke/snacks.nvim",
},
cmd = "GitLogDiff",
opts = { max_count = 300 },
}
```
### packer.nvim
```lua
use({
"Salanoid/gitlogdiff.nvim",
requires = {
"sindrets/diffview.nvim",
"folke/snacks.nvim",
},
config = function()
require("gitlogdiff").setup({
max_count = 300,
})
end,
})
```
Note: This plugin defines the `:GitLogDiff` command on load. If your plugin manager pre-defines lazy command stubs, `gitlogdiff.nvim` will safely overwrite them (we create the command with `force = true`).
## Usage
- Run `:GitLogDiff` inside a Git repository
- Navigate with `j/k`
- Toggle selection with ``
- Press `` to open diffs in Diffview
- Press `q` to close the list
## Configuration
```lua
require("gitlogdiff").setup({
max_count = 300, -- how many commits to list
})
```
## Troubleshooting
- “No git commits found”: you are likely not in a Git repo (or `max_count` is 0)
- “git log failed …”: check that `git` is installed and available in `$PATH`
## Roadmap / Notes
- Remove snacks as a dependency.
- Should work with other diff viwers plugins for example with: [esmuellert/codediff.nvim]: https://github.com/esmuellert/codediff.nvim
## License
MIT — see [LICENSE](./LICENSE).
[sindrets/diffview.nvim]: https://github.com/sindrets/diffview.nvim
[folke/snacks.nvim]: https://github.com/folke/snacks.nvim