What's New 📣 Features About Blog

GitLens is an open-source extension for Visual Studio Code, created by Eric Amodio.

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.

GitLens simply helps you better understand code. 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. Effortlessly explore the history and evolution of a codebase.

Sponsor GitLens

If you find GitLens useful, please consider sponsoring it. And if you use GitLens for work, please encourage your employer to sponsor it.

Sponsored by

marketplace downloads rating slack

  • 11.0.0
    NOVEMBER  2020
  • NEW
    Adds all-new views side bar views
  • ~
    Moves all GitLens views to the Source Control side bar by default. You can move them back to the GitLens side bar via the Set Views Layout (gitlens.setViewsLayout) command or individually via drag and drop
  • +
    Commits view — visualize, explore, and manage Git commits
    Commits view
    • Adds an indicator icon (up arrow) to unpublished (unpushed) commits
  • +
    Branches view — visualize, explore, and manage Git branches
    Branches view
  • +
    Remotes view — visualize, explore, and manage Git remotes and remote branches
    Remotes view
  • +
    Stashes view — visualize, explore, and manage Git stashes
    Stashes view
  • +
    Tags view — visualize, explore, and manage Git tags
    Tags view
  • +
    Contributors view — visualize, navigate, and explore contributors
    Contributors view
    • Moves the current user to be first and adds a (you) suffix
  • +
    Search & Compare view — search and explore commit histories by message, author, files, id, etc, or visualize comparisons between branches, tags, commits, and more
    Search & Compare view
    • Replaces the Search Commits and Compare Commits views
    • Adds persistence (pinning) for both searches and comparisons
    • Adds ability to edit existing searches
  • ~
    Disables the Repositories view by default, as it has been superseded by many new views. You can re-enable it by setting "gitlens.views.repositories.enabled": true or via the GitLens Interactive Settings
  • ~
    Integrates line history into the File History view
    File History view
    • Adds a new Toggle History Mode command to toggle between showing file or line history
    • Adds an indicator icon (up arrow) to unpublished (unpushed) commits
    • Adds support for showing history across all branches via the Toggle Filter menu command — closes #974
    • Adds staged changes
  • IMPROVED
    Refines all of the GitLens contributed menus to reduce noise and improve usability
  • NEW
    Adds a user-friendly interactive rebase editor to easily configure an interactive rebase session
    Rebase Editor
  • NEW
    Adds terminal linksctrl+click on autolinks in the integrated terminal to quickly jump to more details for commits, branches, tags, and more
    Terminal Links
  • NEW
    Adds rich integration with GitHub
  • +
    Adds GitHub avatar support!
  • +
    Adds associated pull request to line annotations and hovers
    Pull requests on line annotation and hovers
  • +
    Adds associated pull request to status bar blame
    Pull requests on status bar
  • +
    Adds associated pull requests to branches and commits in the GitLens views
  • +
    Adds autolinks for GitHub issues and pull requests, including titles, status, and authors
  • NEW
    Adds a new and improved Gutter Heatmap file annotations, via the Toggle File Heatmap Annotations command (gitlens.toggleFileHeatmap)
    Gutter Heatmap
    • Displays the heatmap in the gutter for a cleaner look and avoids any code jumping
    • Adds improved heatmap colorization for better clarity of old and new code
    • Adds the hot/cold age threshold to the GitLens Interactive Settings
  • NEW
    Adds a new and improved Gutter Changes file annotations, via the Toggle File Changes Annotations command (gitlens.toggleFileChanges) — closes #396
    Gutter Changes
    • Provides indicators of local changes, if any, or recent commit changes, and distinguishes between added, changed, and removed lines
    • Similar to the built-in Git gutter changes for un-staged changes, but shows all local (un-pushed) changes
    • Shows a changes hover with the full set of changes (diff hunk) and even with unsaved changes
  • NEW
    Adds many refinements to the Git Command Palette (previously Git Commands), and adds new commands
    Git Command Palette
  • +
    Adds many more options to existing commands
  • +
    Adds improved titles for better clarity, context, and flow
  • +
    Adds a new history (log) command to show the commit history of a branch or tag
    • Adds a Reveal in Side Bar button to the quick pick menu toolbar
    • Adds keyboard navigation
      • right arrow — reveals the selected branch in the Branches or Remotes view (or Repositories view, if enabled), if there is no text in the quick pick menu
      • alt+right arrow, ctrl+right arrow, cmd+right arrow (macOS) — reveals the selected branch in the Branches or Remotes view
  • +
    Adds a new show command to show the details of a commit
    • Adds a Reveal in Side Bar button to the quick pick menu toolbar
    • Adds keyboard navigation
      • right arrow — searches for the selected commit and shows the results in the Search Commits view, if there is no text in the quick pick menu
      • alt+right arrow — searches for the selected commit and shows the results in the Search Commits view
      • ctrl+right arrow, cmd+right arrow (macOS) — reveals the selected commit in the Commits view (or Repositories view, if enabled)
  • +
    Adds a new status command to show the current respository status
  • +
    Adds a new Delete Branch & Remote and Force Delete Branch & Remote options to the branch delete command — to more easily delete branches with tracking branches
  • +
    Adds ability pull (fetch) a specific branch(es) to the pull command — closes #873
  • +
    Adds a new Publish Branch option to the push command
  • +
    Adds ability to push a single branch to the push command
  • +
    Adds support for honoring the git.useForcePushWithLease setting on the push command
  • +
    Adds a new Soft Reset (--soft) option to the reset command
  • NEW
    Adds improved autolinks support
  • +
    Adds a new alphanumeric flag to autolinks — closes #946
  • +
    Adds autolink support in plain text (as footnotes)
  • +
    Allows autolinks inside parentheses and square brackets
  • NEW
    Adds improved co-author support
  • +
    Provides an updatable quick pick of co-authors
  • +
    Adds the Add Co-authors (gitlens.addAuthors) command to the Source Control context menu
  • +
    Adds an option to show or hide the Add Co-authors command on the Source Control context menu to the Menus & Toolbars section of the GitLens Interactive Settings
  • NEW
    Adds many new commands
  • +
    Open File from Remote (gitlens.openFileFromRemote) command — opens the local file from a remote file url
  • +
    Set Views Layout (gitlens.setViewsLayout) command — quickly switch between showing GitLens views in GitLens sidebar (default) and the Source Control sidebar
  • +
    Adds a Switch to Another Branch (gitlens.views.switchToAnotherBranch) command — to quickly switch the current branch
  • +
    Copy Remote Commit Url command (gitlens.copyRemoteCommitUrl) — copies the url of the current line commit on the remote provider
  • +
    Copy Remote Branch Url command (gitlens.copyRemoteBranchUrl) — copies the url of a branch on the remote provider
  • +
    Copy Remote Branches Url command (gitlens.copyRemoteBranchesUrl) — copies the url of the branches on the remote provider
  • +
    Open Comparison on Remote command (gitlens.openComparisonOnRemote) — opens the comparison on the remote provider
  • +
    Copy Remote Comparison Url command (gitlens.copyRemoteComparisonUrl) — copies the url of the comparison on the remote provider
  • +
    Open Pull Request command (gitlens.openPullRequestOnRemote) — opens the pull request on the remote provider
  • +
    Copy Pull Request Url command (gitlens.copyRemotePullRequestUrl) — copies the url of the pull request on the remote provider
  • +
    Copy Remote Repository Url command (gitlens.copyRemoteRepositoryUrl) — copies the url of the repository on the remote provider
  • NEW
    Adds alternative alt+click commands for many of the Open * on Remote commands to alternatively copy the url to the clipboard
  • NEW
    Adds an Open Commit on Remote command (with an Copy Remote Commit Url alt+click command) to commits in the VS Code Timeline view
  • NEW
    Adds ability to set the default remote from any of the Open * on Remote command quick pick menus
  • NEW
    Adds Git Code Lens to markdown headers
  • NEW
    Adds new Git Code Lens options to disable the click actions on both the recent change and authors code lens — closes #989 thanks to PR #1009 by Abdulrahman (Abdu) Assabri (@abdusabri)
  • NEW
    Adds per-language customizations to the gitlens.codeLens.scopes and gitlens.codeLens.symbolScopes settings — closes #977
  • NEW
    Adds new click behavior for changed files in GitLens views to open a diff of all contained changes
  • NEW
    Adds a new gitlens.hovers.avatarSize setting to customize the size of avatars shown in hovers
    • Increases the default avatar size in hovers from 16px to 32px
  • NEW
    Adds Hide Avatars or Show Avatars menu command to many GitLens views to hide or show avatars
  • NEW
    Adds Hide Date Markers or Show Date Markers menu command to many GitLens views to hide or show relative date markers
  • NEW
    Adds real-time preview when editing format strings in the GitLens Interactive Settings
  • NEW
    Adds a new commit format tokens: ${authorNotYou}, ${agoOrDateShort}, ${authorAgoOrDateShort}, ${committerAgoOrDateShort}
  • NEW
    Adds synchronized storage to avoid opening the Welcome page or showing a What's New notification on new machines when Settings Sync is enabled
  • NEW
    Adds new Welcome and Open Settings menu commands to the GitLens gear menu in the Extensions sidebar — closes #952 & #953 thanks to PR #992 by Zeeshan Adnan (@zeeshanadnan)
  • NEW
    Adds a new HEAD option to the compare quick pick menu — closes #927
  • NEW
    Adds support for .gitattributes text conversion filters — closes #866 thanks to PR #1052 by Martin Campbell (@martin-css)
  • NEW
    Adds week(s) ago to relative time formatting
  • NEW
    Adds a limit of 5000 commits to the Load All command in GitLens views
  • NEW
    Adds a Clear command to the branch comparison tool in GitLens views
  • NEW
    Adds compact mode for showing branch and tag tips on commits in GitLens views
  • NEW
    Adds Copy SHA command to branches and tags in GitLens views
  • IMPROVED
    Changes all comparisons results to be split into ahead and behind groups
  • IMPROVED
    Changes Git Code Lens to be less intrusive when they are unavailable because of unsaved changes, via new defaults for the gitlens.strings.codeLens.unsavedChanges.* settings
  • IMPROVED
    Changes to use VS Code's built-in icons (codicons) where possible — closes #985
  • IMPROVED
    Changes to use codicons in hovers — closes #954
  • IMPROVED
    Changes revision navigation icons to better match VS Code
  • IMPROVED
    Changes all the Open * on Remote command icons to use the globe codicon
  • IMPROVED
    Changes the comparison icons in GitLens views
  • IMPROVED
    Changes the default blame annotation format to show 50 characters (instead of 40)
  • IMPROVED
    Changes the relative date markers in GitLens views to be less prominent, and avoids showing the marker if it is first item
  • IMPROVED
    Changes commit quick pick menu commands to align with commit context menu commands
  • IMPROVED
    Changes the Open Settings and Welcome pages to open beside the active editor
  • IMPROVED
    Changes the default sorting of branches so that main, master, and develop are first
  • IMPROVED
    Changes the sorting of branches in the Git Commands Palette and other quick pick menus to be by date descending
  • IMPROVED
    Changes the default sorting of remotes so that origin is first — closes #924 — thanks to PR #925 by Connor Peet (@connor4312)
  • IMPROVED
    Changes the default sorting of tags to be by date descending
  • IMPROVED
    Changes to limit scm/resourceGroup/context and scm/resourceState/context menu contributions
  • IMPROVED
    Changes to support the latest emojis in commit messages
  • IMPROVED
    Improves VS Code startup performance by using the new onStartupFinished activation event
  • IMPROVED
    Improves the performance of the Details hover
  • IMPROVED
    Improves the performance of loading Contributors in the Contributors and Repositories views
  • IMPROVED
    Improves the performance and experience when opening multiple files or revisions
  • IMPROVED
    Improves the performance of the file system watching for repository changes (ignores .gitignored files)
  • IMPROVED
    Moves the avatars in the Gutter Blame file annotations to be part of the annotations rather than in the gutter itself
  • IMPROVED
    Renames Show More to Load more in GitLens views
  • IMPROVED
    Renames Show Commit Details command to Show Commit
  • IMPROVED
    Replaces Push to Commit (via Terminal) command with a new Push to Commit command
  • IMPROVED
    Deprecates the Line History view, as it has been integrated into the File History view. While it will likely be removed in a future version, you can be re-enable it by setting "gitlens.views.lineHistory.enabled": true
  • IMPROVED
    Deprecates the gitlens.codeLens.scopesByLanguage setting, use per-language gitlens.codeLens.scopesandgitlens.codeLens.symbolScopes settings instead
  • IMPROVED
    Deprecates the gitlens.gitCommands.search.showResultsInView setting as it has been renamed to gitlens.gitCommands.search.showResultsInSideBar
  • IMPROVED
    Deprecates the gitlens.views.commitFileFormat setting, use gitlens.views.formats.files.label instead
  • IMPROVED
    Deprecates the gitlens.views.commitFileDescriptionFormat setting, use gitlens.views.formats.files.description instead
  • IMPROVED
    Deprecates the gitlens.views.commitFormat setting, use gitlens.views.formats.commits.label instead
  • IMPROVED
    Deprecates the gitlens.views.commitDescriptionFormat setting, use gitlens.views.formats.commits.description instead
  • IMPROVED
    Deprecates the gitlens.views.stashFileFormat setting, use gitlens.views.formats.files.label instead
  • IMPROVED
    Deprecates the gitlens.views.stashFileDescriptionFormat setting, use gitlens.views.formats.files.description instead
  • IMPROVED
    Deprecates the gitlens.views.stashFormat setting, use gitlens.views.formats.stashes.label instead
  • IMPROVED
    Deprecates the gitlens.views.stashDescriptionFormat setting, use gitlens.views.formats.stashes.description instead
  • IMPROVED
    Deprecates the gitlens.views.statusFileFormat setting, use gitlens.views.formats.files.label instead
  • IMPROVED
    Deprecates the gitlens.views.statusFileDescriptionFormat setting, use gitlens.views.formats.files.description instead
  • IMPROVED
    Removes the sponsor heart icon from all GitLens views and simplifies the sponsor command
  • IMPROVED
    Removes the useless Collapse All command from the File History view
  • IMPROVED
    Removes the Keep Open toggle button on the Git Command Palette toolbar — the behavior is now automatically determined (unless overridden by the gitlens.gitCommands.closeOnFocusOut setting)
  • IMPROVED
    Removes ${changes} token from commit description format by default
  • IMPROVED
    Removes the associated commit sha from tag descriptions
  • IMPROVED
    Removes many view visibility (enablement) settings as the control over a views visibility is more easily controlled directly by unchecking the view itself
  • IMPROVED
    Removes the gitlens.views.repositories.showTrackingBranch setting as it is now always enabled
  • FIXED
    Fixes diffs of renamed files in certain cases
  • FIXED
    Fixes #1139 - Git crash with v2.29.x
  • FIXED
    Fixes typo forcably -> forcibly — thanks to PR #1138 by Andrea Cigana (@ciganandrea)
  • FIXED
    Fixes missing empty (non-merge) commits
  • FIXED
    Fixes issue with a blank branch name before any commits exist
  • FIXED
    Fixes issues with missing repository or file system change events while vs code is unfocused
  • FIXED
    Fixes remote url issues with spaces in the filename
  • FIXED
    Fixes issue where <remote>/HEAD was showing up as a branch
  • FIXED
    Fixes issues with revision navigation commands and diff editors
  • FIXED
    Fixes show command with single file commits
  • FIXED
    Fixes delete of remote branches on the Git Command Palette's branch command
  • FIXED
    Fixes Git Command Palette's back tracking in certain cases
  • FIXED
    Fixes issue to ensure that dropping a stash drops the correct item even if the view is out of date
  • FIXED
    Fixes the Push Stash & Keep Staged option on the Git Command Palette's stash command
  • FIXED
    Fixes issues with stashes and untracked files
  • FIXED
    Fixes the wrong icon on the Unstage All Changes command
  • FIXED
    Fixes issue where a selection change wouldn't always trigger a Line History refresh
  • FIXED
    Fixes issues where GitLens' files would not re-open properly on reload
  • FIXED
    Fixes Incomplete string escaping or encoding code scan warning — https://github.com/eamodio/vscode-gitlens/security/code-scanning/1
  • FIXED
    Fixes Inefficient regular expression code scan warning — https://github.com/eamodio/vscode-gitlens/security/code-scanning/2
  • FIXED
    Fixes #1072 - Add whitespace to tree item tooltip — thanks to PR #1073 by Alex (@deadmeu)
  • FIXED
    Fixes Git Command Palette's stash drop command not working
  • FIXED
    Fixes #1033 - Adopt VS Code's 'asWebviewUri' API
  • FIXED
    Fixes issues with Open Changes with Previous Revision and diff editors
  • FIXED
    Fixes issues with Open Changes with Working File and diff editors
  • FIXED
    Fixes issue with the previous line diff line number being off
  • FIXED
    Fixes issues with bogus merge commits that can show up in file histories; now using --first-parent for git log with --follow
  • FIXED
    Fixes issues with paging git log with merge commits
  • FIXED
    Fixes directory compare from waiting for external tool to exit
  • FIXED
    Fixes #996 - Rename branch should show existing name highlighted
  • FIXED
    Fixes issues with folders that end with a space
  • FIXED
    Fixes typo in contributing search tag link — thanks to PR #981 by Guillem (@guillemglez)
  • FIXED
    Fixes #970 - Stashes doesn't honor files layout
  • FIXED
    Fixes Load more in GitLens views with range notation comparisons
  • FIXED
    Fixes ignoreCase flag on autolinks
  • FIXED
    Fixes #951 - Starring branch updates repository view properly — thanks to PR #963 by Zeeshan Adnan (@zeeshanadnan)
  • FIXED
    Fixes issues with switch branch command error handling
  • FIXED
    Fixes issues with stash command error handling
  • FIXED
    Fixes file history issues with copied and deleted files
  • FIXED
    Fixes intermittent issues with Reveal Commit in Repopsitories View
  • FIXED
    Fixes #910 - "Show Commit in Search Commits View" doesn't work
  • FIXED
    Fixes issues with hovers not showing on first editor
  • FIXED
    Fixes autolinking with remote providers
  • FIXED
    Fixes issues with some settings metadata
  • 11.0.1
    NOVEMBER  2020
  • NEW
    Adds a Compare References... command (gitlens.compareWith) to compare two selected references
  • NEW
    Adds ability to enter reference ranges (e.g. main...release/1.0) to the Git Command Palette's history command
  • FIXED
    Fixes #1148 — Follow renames on File History cannot load more history
  • FIXED
    Fixes #1157 — GitLens report `X files changed` when comparing working tree with a branch having identical files
  • FIXED
    Fixes #1150 — Cannot read property 'provider' of undefined
  • 11.0.2
    NOVEMBER  2020
  • NEW
    Refines the Interactive Rebase Editor
  • +
    Adds a quick-access button to disable the rebase editor — closes #1153
  • +
    Adds shortcut keys to start and abort a rebase
  • +
    Adds a Disable Interactive Rebase Editor command (gitlens.disableRebaseEditor)
  • +
    Adds an Enable Interactive Rebase Editor command (gitlens.enableRebaseEditor)
  • +
    Adds an Interactive Rebase Editor section to the GitLens Interactive Settings
  • ~
    Changes the layout spacing of the Interactive Rebase Editor to allow for more commits to be shown at once
  • FIXED
    Fixes #1187 — Warning about incorrect regexp in DevTools console — thanks to PR #1188 by Andrii Dieiev (@IllusionMH)
  • FIXED
    Fixes #1151 — Icons not showing in interactive rebase
  • FIXED
    Fixes #1166 — Enormous avatars in interactive rebase view
  • 11.0.3
    NOVEMBER  2020
  • FIXED
    Fixes #1163 — Use Interactive Rebase Editor when run from GitLens command (regardless of Git config)
  • FIXED
    Fixes #1197 — Can't squash commit in interactive rebase editor
  • FIXED
    Fixes the gitlens.codeLens.scopes setting json schema
  • 11.0.4
    NOVEMBER  2020
  • FIXED
    Fixes #1161 — Compare file differences between branches
  • FIXED
    Fixes #1157 — GitLens report `X files changed` when comparing working tree with a branch having identical files
  • 11.0.5
    NOVEMBER  2020
  • FIXED
    Fixes #1204 — Compare file changes: "new" and "old" sides of the compare are backwards
  • 11.0.6
    NOVEMBER  2020
  • IMPROVED
    Changes the Where did my views go? view to show on this next upgrade, since somehow (still not sure how) it was never shown to many (most?) users
  • IMPROVED
    Changes GitHub connection rejection to be per-workspace (rather than global)
  • FIXED
    Fixes #1205 — Setting heatmap's coldColor and hotColor breaks file blame & related functionality
  • FIXED
    Fixes invalid branch status showing up for remote branches

GitLens simply helps you better understand code. 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. Effortlessly explore the history and evolution of a codebase. Dive right in and see how GitLens can help!

While GitLens is powerful and feature rich, it is also 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 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.

Here are some of the features that GitLens provides,

  • effortless revision navigation (backwards and forwards) through the history of a file
    Revision Navigation
  • an unobtrusive current line blame annotation at the end of the line showing the commit and author who last modified the line, with more detailed blame information accessible on hover
  • authorship code lens showing the most recent commit and number of authors at the top of files and/or on code blocks
  • a status bar blame annotation showing the commit and author who last modified the current line
  • on-demand file annotations in the editor gutter, including
    • blame — shows the commit and author who last modified each line of a file
    • changes — highlights any local (unpublished) changes or lines changed by the most recent commit
    • heatmap — shows how recently lines were changed, relative to all the other changes in the file and to now (hot vs. cold)
  • many rich Side Bar views
    • a Commits view to visualize, explore, and manage Git commits
    • a File History view to visualize, navigate, and explore the revision history of the current file or just the selected lines of the current file and explore the revision history of the selected lines of current file
    • a Branches view to visualize, explore, and manage Git branches
    • a Remotes view to visualize, explore, and manage Git remotes and remote branches
    • a Stashes view to visualize, explore, and manage Git stashes
    • a Tags view to visualize, explore, and manage Git tags
    • a Contributors view to visualize, navigate, and explore contributors
    • a Search & Compare view to search and explore commit histories by message, author, files, id, etc, or visualize comparisons between branches, tags, commits, and more
  • a Git Command Palette to provide guided (step-by-step) access to many common Git commands, as well as quick access to
  • a user-friendly interactive rebase editor to easily configure an interactive rebase session
    Interactive Rebase Editor
  • terminal linksctrl+click on autolinks in the integrated terminal to quickly jump to more details for commits, branches, tags, and more
    Terminal Links
  • remote provider integrations — GitHub, GitLab, Bitbucket, Azure DevOps
    • issue and pull request auto-linking
    • rich hover information provided for linked issues and pull requests (GitHub only)
    • associates pull requests with branches and commits (GitHub only)
  • many powerful commands for navigating and comparing revisions, and more
  • user-defined modes for quickly toggling between sets of settings
  • and so much more 😁

Hi.

I'm an open-source enthusiast and maintainer. I ❤ open-source — both building and contributing. I love the collaboration and the sharing of knowledge driven by the open-source movement.

At the same time, open-source comes with a cost, which gets paid by trading time and energy from other areas — for me it's usually sleep 💤, but sometimes also family. Of course, by sponsoring me and my work, you can't create time, but you can certainly help increase the desire and reward for trading this precious time.

I spend a lot of my “free” time building, maintaining, and supporting GitLens and have for well over 4 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. GitLens now has over 6 million installs (~40M downloads 😱) and is used by teams of all sizes, from single developers to large enterprise teams. I also author, maintain, and support many other VS Code extensions (and have ideas for many more) as well as contribute to many open-source projects.

If you find GitLens useful, please consider sponsoring it. And if you use GitLens for work, please encourage your employer to sponsor it. Additionally please star it on GitHub, write a review, follow me on Twitter and GitHub, or consider hiring me.

💖 Thank you for your future sponsorship! And to my incredible sponsors — thank you so much for your contributions. I am truly humbled by your generosity and support.

Sponsored by

GitLens started way back in mid-2016, when I fell in love with Visual Studio Code and wanted to play with the then newly released extension support. It was also a good excuse for me to improve my budding TypeScript skills. It all started with a simple question — could I add Git insights via code lens to any document.

Since then, GitLens has quickly grown from a simple prototype to a feature-rich product with millions of users and a mission of its own — to simply help you better understand code.

Read the reviews to see what people are saying about GitLens. I am truly humbled by the love and support of the Visual Studio Code community.

❤ My favorite review