
GitLens
Git supercharged
GitLens supercharges the Git capabilities built into Visual Studio Code. It helps you to visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more.
Don't miss how easy it is to configure GitLens!
What's New in GitLens 8 🎉🎈
- 8.5 JULY 2018
-
NEW
Adds an all-new
GitLens sidebar view to contain the
GitLens,
GitLens File History, and
GitLens Results explorers
The new view is enabled by default, but can easily be configured back to the existing locations via the GitLens interactive settings editor
- NEW Adds emoji support, e.g. :smile: in commit messages will now be 😃 — closes #429
- NEW Adds Compare with Selected and Select for Compare commands to file nodes in the GitLens, GitLens File History, and GitLens Results explorers — closes #446
- NEW Adds tag annotations to the tag tooltips in the GitLens explorer — closes #431
-
NEW
Adds
Choose from Branch or Tag History... command to the quick pick menu shown by the
Show File History... command (
gitlens.showQuickFileHistory
) — closes #316 -
NEW
Adds the
Compare File with Revision...
command (
gitlens.diffWithRevision
) as an alternate (alt+click
) for the Compare File with Previous Revision command in the editor toolbar -
NEW
Adds a
gitlens.hovers.avatars
setting to specify whether to show avatar images in hovers — closes #432 thanks to PR #441 by Segev Finer -
NEW
Adds
gitlens.historyExplorer.avatars
setting to specify whether to show avatar images instead of status icons in the GitLens File History explorer — allows for an independent value from the other explorers -
NEW
Adds the
gitlens.hovers.avatars
setting to the GitLens interactive settings editor to specify whether to show avatar images in hovers - IMPROVED Renames the GitLens History explorer to GitLens File History explorer for better clarity
- IMPROVED Changes the GitLens File History explorer to always show the full file history even when reviewing revisions
-
IMPROVED
Changes the behavior of and renames the
Show Branches and Tags command and on the quick pick menu shown by the
Compare File with Revision... command (
gitlens.diffWithRevision
) to Choose from Branch or Tag History... -
IMPROVED
Removes
gitlens:activeIsTracked
,gitlens:activeIsBlameable
,gitlens:activeIsRevision
, andgitlens:activeHasRemotes
contexts and consolidates them intogitlens:activeFileStatus
for better performance and UX - FIXED Fixes #436 — Copy to clipboard not working
-
FIXED
Fixes
#442 — GitLens File History fails if name (or path) starts with
-
- FIXED Fixes #440 — Searching for commits with an empty query yields to no results anymore
- FIXED Fixes #444 — GitLens custom viewlet icon slightly larger than standard
-
FIXED
Fixes
#437 — Remove
--first-parent
from git commands to show file history from merged in - FIXED Fixes #252 — Cannot read property 'push' of undefined
- FIXED Fixes #451 — "apply Changes" has discarded all my changes
- FIXED Fixes #449 — Stop hiding explorers by default when in Zen mode
- FIXED Fixes #454 — Search for string returns merge commits (unlike raw `git log -S`)
- FIXED Fixes issue where commands in the editor toolbar would flash unnecessarily when navigating history or switching tabs
- FIXED Fixes issue where the Compare File with Previous Revision command wouldn't work properly when the file had been renamed in some cases
- FIXED Fixes issue where the Compare File with Next Revision command wouldn't work properly when the file had been renamed in some cases
- FIXED Fixes issue where changed files count was wrong when the branch was behind the upstream
- FIXED Fixes issue where the GitLens File History explorer wasn't being updated automatically for working changes
- FIXED Fixes issue where the Compare File with * Revision commands in the editor toolbar would show and hide too often because of insignificant focus changes
- FIXED Fixes issue where the scope box would be empty when there was no workspace open in the interactive settings editor
- FIXED Fixes issue where GitLens saves a couple settings with default values into user settings (rather than just removing the setting)
- FIXED Fixes issue showing changes with untracked stashed files
- FIXED Fixes issue showing changes with working file when the file has been renamed
- 8.4 JUNE 2018
-
NEW
Adds completely revamped heatmap annotations
The indicator's color, now customizable, will either be hot or cold based on the age of the most recent change (cold after 90 days by default) — closes #419
The indicator's brightness ranges from bright (newer) to dim (older) based on the relative age, which is calculated from the median age of all the changes in the file
- NEW Adds new branch history node under the Repository Status node in the GitLens explorer
- NEW Adds GitLab and Visual Studio Team Services icons to the remote nodes in the GitLens explorer — thanks to PR #421 by Maxim Pekurin
-
NEW
Adds
gitlens.heatmap.ageThreshold
setting to specify the age of the most recent change (in days) after which the gutter heatmap annotations will be cold rather than hot (i.e. will usegitlens.heatmap.coldColor
instead ofgitlens.heatmap.hotColor
) -
NEW
Adds
gitlens.heatmap.coldColor
setting to specify the base color of the gutter heatmap annotations when the most recent change is older (cold) than thegitlens.heatmap.ageThreshold
setting -
NEW
Adds
gitlens.heatmap.hotColor
setting to specify the base color of the gutter heatmap annotations when the most recent change is newer (hot) than thegitlens.heatmap.ageThreshold
setting - FIXED Fixes #400 — GitLens logging to debug console when debugging different extension
- FIXED Fixes #409 — Literal $(ellipsis) inserted into commit QuickPick menu entry placeholder text
- FIXED Fixes #415 — Branch names get mangled by color escapes — thanks to PR #416 by Roy Ivy III
-
FIXED
Fixes issue with insiders builds because of the new
SymbolInformation
API changes (see Microsoft/vscode#34968) - 8.3 MAY 2018
- NEW Adds the ability to control where the GitLens, GitLens File History, and GitLens Results explorers are shown 🎉 — closes #213, #377
-
NEW
Adds user-defined modes for quickly toggling between sets of settings
-
NEW
Adds
Switch Mode command (
gitlens.switchMode
) to quickly switch the active GitLens mode -
NEW
Adds
Toggle Zen Mode command (
gitlens.toggleZenMode
) to toggle Zen mode which disables many visual features -
NEW
Adds
Toggle Review Mode command (
gitlens.toggleReviewMode
) to toggle Review mode which enables many visual features -
NEW
Adds modes settings (
gitlens.mode.*
) to the interactive settings editor -
NEW
Adds an icon for the
Compare File with Previous Revision command (
gitlens.diffWithPrevious
) and moves it into the editor toolbar -
NEW
Adds an icon for the
Compare File with Next Revision command (
gitlens.diffWithNext
) and moves it into the editor toolbar -
NEW
Adds menu settings (
gitlens.menus.*
) to the interactive settings editor -
NEW
Adds a display mode dropdown at the top of the interactive settings editor to reduce complexity
- NEW Adds (re-adds) support for handling single files — closes #321
- NEW Adds a tree layout option to tags in the GitLens explorer — closes #358
-
NEW
Adds
Show GitLens Explorer command (
gitlens.showGitExplorer
) — shows/expands the GitLens explorer -
NEW
Adds
Show File History Explorer command (
gitlens.showHistoryExplorer
) — shows/expands the GitLens File History explorer -
NEW
Adds
Show Results Explorer command (
gitlens.showResultsExplorer
) — shows/expands the GitLens Results explorer -
NEW
Adds
Close Repository command (
gitlens.explorers.closeRepository
) to repository and repository status nodes in the GitLens explorer — closes (hides) the repository in the GitLens explorer - NEW Adds clipboard support for Linux without requiring any external dependencies — thanks to PR #394 by Cédric Malard
-
NEW
Adds a select branch quick pick menu to the
Open File in Remote command (
gitlens.openFileInRemote
) when the current branch has no upstream tracking branch — closes #209 - IMPROVED Showing results in the GitLens Results explorer now properly shows the explorer first
- IMPROVED Renames Compare Line Revision with Previous command to Compare Commit with Previous for better consistency with other commands
- IMPROVED Renames Compare Line Revision with Working File command to Compare Commit with Working File for better consistency with other commands
- IMPROVED Renames Show Commit File Details command to Show Commit Details for better consistency with other commands
- IMPROVED Reworks GitLens menu contributions and configuration — see menu settings above
-
IMPROVED
Renames the
gitlens.advanced.menus
setting togitlens.menus
- IMPROVED Uses the new Webview API for better interactions and behavior with the interactive settings editor and welcome page
-
IMPROVED
Moves the
Open Working File command (
gitlens.openWorkingFile
) to the right of the Compare File with * Revision commands in the editor toolbar - FIXED Fixes #366 — Running a GitLens command from a keybinding fails
-
FIXED
Fixes
#155 — Navigating file diffs with
alt+,
gets stuck - FIXED Fixes #359 — Show changes of an added file in the first commit
- FIXED Fixes #372 — Wrong URL to VSTS work item when using hash work item id in commit
- FIXED Fixes #362 — Too many code lenses in postcss files
- FIXED Fixes #381 — Can't stash single files with older versions of Git
- FIXED Fixes #384 — Absolute dates not always honored in GitLens Results explorer
- FIXED Fixes #385 — Wrong git command to delete remote branch
- FIXED Fixes #400 — Reset TO commit also resets chosen one
- FIXED Fixes #399 — "Open x in Remote" commands aren't always available
-
FIXED
Fixes
#397 — Error while opening the gitlens view using
Open View
command - FIXED Fixes #391 — GitLens adds some settings in settings.json
- FIXED Fixes #343 — Can't show blame when VSCode starts on branch without upstream — thanks to PR #390 by ryenus
- FIXED Fixes #392 — unable to contribute if default script shell is sh — thanks to PR #393 by Cédric Malard
- FIXED Fixes more instances of #295 and #318 — Any error encountered during the search for repositories could cause GitLens to die
-
FIXED
Fixes issue with the
chorded
keyboard shortcut for the Compare File with Previous Revision command (gitlens.diffWithPreviousInDiff
) — from #395 - FIXED Fixes bronze typo thanks to PR #361 by Cory Forsyth
- FIXED Fixes individually typo thanks to PR #364 by Brett Cannon
- FIXED Fixes issue where comparing previous revision during a merge/rebase conflict failed to show the correct contents
- FIXED Fixes issue with the current line blame toggle not working when current line blame starts disabled
- FIXED Fixes various issues when not on a branch
- FIXED Fixes many issues where commands wouldn't work if the active file wasn't part of an open repository — now GitLens will try to find the best repository otherwise it will open a repository quick pick menu if there is more than one
-
FIXED
Fixes the
Open Working File command (
gitlens.openWorkingFile
) not always showing in the editor toolbar when appropriate - 8.2 APRIL 2018
-
NEW
Adds new stand-alone
GitLens File History explorer to visualize the history of the current file — undocked
version of the
GitLens explorer history view
-
NEW
Adds richer tooltips to the
GitLens and
GitLens Results explorers, and richer working tree and upstream status to the
GitLens explorer
-
NEW
Adds an indicator to the
GitLens explorer's branch history to mark the synchronization point between the local and
remote branch (if available)
-
NEW
Adds ability to easily switch between relative and absolute dates via the
gitlens.defaultDateStyle
settings — closes #312 -
NEW
Adds annotation format settings (
gitlens.*.format
) to the interactive settings editor -
NEW
Adds new
gitlens.currentLine.scrollable
setting to specify whether the current line blame annotation can be scrolled into view when it is outside the viewport — closes #149, #290, #265 -
NEW
Adds
gitlens.statusBar.reduceFlicker
setting to the interactive settings editor - FIXED Fixes #314 — Toggle line annotation doesn't work properly
- FIXED Fixes #310 — "via Terminal" commands need quoting around work directory
- FIXED Fixes issues with the active repository in the GitLens explorer failed to update properly
- FIXED Fixes issues with Open File, Open Revision, and Show File History commands and images and other binary files
- FIXED Fixes issues preventing nodes in the GitLens explorer from expanding properly in certain cases
- FIXED Fixes issues when refreshing nodes in the GitLens Results explorer
- 8.1 MARCH 2018
-
NEW
Adds automatic issue linking to Bitbucket, GitHub, GitLab, and Visual Studio Team Services for commit messages in hovers
-
NEW
Adds support to toggle annotations for each file individually or for all files at once — closes
#289
- NEW Adds icons to remotes in the GitLens explorer based on the remote service provider
- NEW Adds multi-cursor support to current line annotations — closes #291
- IMPROVED Renames Compare Selected Ancestor with Working Tree command to Compare Ancestry with Working Tree and removes the need to select a branch first, since all compares are performed with the working tree — closes #279
- FIXED Fixes #294 — Keyboard shortcuts will now default to chorded to avoid conflicts. Only affects new installs or if you remove the gitlens.keymap setting
- 8.0 FEBRUARY 2018
- NEW Brand new welcome experience — you're looking at it
-
NEW
Brand new interactive
settings editor — GitLens is easier than ever to customize to suit your needs
- NEW Brand new website — check it out!
- NEW Adds a tree layout option to branches in the GitLens explorer — thanks to Yukai Huang ( @Yukaii)!
- IMPROVED Reworked settings — clearer, simpler settings
- FIXED Previous settings will now be migrated properly — sorry everyone 😢
See the release notes for the full set of changes
Welcome
Thank you for taking the time to try GitLens!
GitLens is an open-source extension for Visual Studio Code created by Eric Amodio. While GitLens is generously offered to everyone free of charge, if you find it useful please consider supporting it.
GitLens simply helps you understand code better. Quickly glimpse into whom, why, and when a line or code block was changed. Jump back through history to gain further insights as to how and why the code evolved. Explore the history and evolution of a codebase. Dive right in and see how GitLens can help!
Here are just some of the features that GitLens provides,
- a GitLens explorer to navigate and explore repositories
- a GitLens File History explorer to navigate and explore file histories
- an on-demand GitLens Results explorer to navigate and explore commits, histories, and searches, or visualize comparisons between branches, tags, commits, and more
- authorship code lens showing the most recent commit and # of authors to the top of files and/or on code blocks
- an unobtrusive current line blame annotation at the end of the line
- on-demand gutter blame annotations, including a heatmap, for the whole file
- on-demand gutter heatmap annotations to show how recently lines were changed, relative to all the other changes in the file and to now (hot vs. cold)
- detailed blame information accessible via hovers
- on-demand recent changes annotations to highlight lines changed by the most recent commit
- a status bar blame annotation showing author and date for the current line
- commit search — by message, author, filename, commit id, or code changes
- many powerful commands for exploring commits and histories, comparing and navigating revisions, stash access, repository status, etc
- and so much more
GitLens is powerful, feature rich, and highly customizable to meet your specific needs — find code lens intrusive or the current line blame annotation distracting — no problem, it is quick and easy to turn them off or change how they behave via the built-in GitLens Settings editor, an interactive editor covering many of GitLens' powerful settings. While for more advanced customizations, refer to the GitLens settings docs and edit your User Settings.
Support GitLens
While GitLens is generously offered to everyone free of charge, if you find it useful please consider supporting it.
I've been building GitLens in my spare time 1 for almost 2 years now. From its very humble beginnings, GitLens has grown wildly beyond my expectations — in both its reach as well as its demands on my time and attention. While I enjoy giving my free time and attention to GitLens' development and growth, I would like to do even more.
Show Your Support ❤
To my incredible backers — thank you so much for your contributions. I am truly humbled by your generosity and support. Please know that your support plays a important role in helping me realize GitLens' potential in making developer's lives easier.
If you'd like to join them in supporting GitLens, please consider the following — feel free to choose more than one. 😉