GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Salanoid/gitlogdiff.nvim: Diff between multiple git commits, similar to JetBrains's git log.

BranchesTags
Open more actions menu

Latest commit

 

History

15 Commits
15 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
doc
doc
 
 
lua/gitlogdiff
lua/gitlogdiff
 
 
plugin
plugin
 
 
scripts
scripts
 
 
tests
tests
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
selene.toml
selene.toml
 
 
stylua.toml
stylua.toml
 
 

Repository files navigation

gitlogdiff.nvim

CI

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”.

Preview

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 or codediff.nvim
    • 1 selected commit → diff that commit against its parent (<hash>^..<hash>)
    • Consecutive commits selected → diff the whole range (<oldest>^..<newest>)
    • Non-consecutive commits selected → combined diff of only the selected commits (like JetBrains' git log): the skipped commits in between are left out. This works by cherry-picking the selection onto a synthetic commit in a temporary worktree; if a skipped commit conflicts with a selected one, the plugin falls back to opening one diff per selected commit.

Requirements

  • Neovim ≥ 0.10 (uses vim.system)
  • Git available on your $PATH
  • One diff viewer plugin:
    • sindrets/diffview.nvim, or
    • esmuellert/codediff.nvim

Installation

lazy.nvim

{
  "Salanoid/gitlogdiff.nvim",
  main = "gitlogdiff",
  dependencies = {
    "sindrets/diffview.nvim",
  },
  cmd = "GitLogDiff",
  opts = { max_count = 300 },
}

packer.nvim

use({
  "Salanoid/gitlogdiff.nvim",
  requires = {
    "sindrets/diffview.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 <space>
  • Press <CR> to open diffs in your diff viewer
  • Press q to close the list

Configuration

require("gitlogdiff").setup({
  max_count = 300, -- how many commits to list
  viewer = "auto", -- "auto" | "diffview" | "codediff"
})

With viewer = "auto" (the default), the plugin uses diffview.nvim if it is installed and falls back to codediff.nvim otherwise. Set it explicitly if you have both and want codediff.

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

License

MIT — see LICENSE.

About

Diff between multiple git commits, similar to JetBrains's git log.

Topics

gitgit-loggit-statusneovimneovim-gitneovim-plugin

Resources

Readme
MIT license
Activity

Stars

23 stars

Watchers

1 watching

Forks

2 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.