gitkraken / vscode-gitlens

Supercharge Git inside VS Code and unlock untapped knowledge within each repository — Visualize code authorship at a glance via Git blame annotations and CodeLens, seamlessly navigate and explore Git repositories, gain valuable insights via rich visualizations and powerful comparison commands, and so much more
http://gitkraken.com/gitlens
Other
8.94k stars 1.27k forks source link

Export commit #2147

Open abicorios opened 2 years ago

abicorios commented 2 years ago

Can you please create a feature to export files changed by a commit? It can be zip archive, with files, which is created or modified by the commit, with same directory strucrure as main project. It was some multy-years discussion about it in https://github.com/gitkraken/vscode-gitlens/issues/303 Also TortoiseGit can do it. It is comfortable to make update releases by export a merge commit.

bugalwena commented 2 years ago


GitLens Logo

GitLens supercharges Git inside VS Code and unlocks untapped knowledge within each repository. It helps you to visualize code authorship at a glance via Git blame annotations and CodeLens, seamlessly navigate and explore Git repositories, gain valuable insights via rich visualizations and powerful comparison commands, and so much more.


Watch the GitLens Getting Started video

Open What's New in GitLens 12
or read the release notes

GitLens

GitLens is an open-source extension for Visual Studio Code.

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.

GitLens is powerful, feature rich, and highly customizable to meet your needs. Do you find CodeLens intrusive or the current line blame annotation distracting — no problem, quickly turn them off or change how they behave via the interactive GitLens Settings editor. For advanced customizations, refer to the GitLens docs and edit your user settings.

Here are just some of the features that GitLens provides,

Introducing GitLens+ #

GitLens+ adds all-new, completely optional, features that enhance your current GitLens experience when you sign in with a free account. A free GitLens+ account gives you access to these new GitLens+ features on public repos, while a paid account allows you to use them on private repos. Learn more about GitLens+ features.

🛈 All other GitLens features are always accessible, without an account, and will continue to evolve and be invested in.

Does this affect existing features?

No, the introduction of GitLens+ has no impact on existing GitLens features, so you won't lose access to any of the GitLens features you know and love. In fact, we are heavily investing in enhancing and expanding the GitLens feature set. Creating an account simply gives you access to a subset of new features that will enable you to get even more out of Git in VS Code!

Visual File History view #

Visual File History view

The Visual File History view allows you to quickly see the evolution of a file, including when changes were made, how large they were, and who made them.

Authors who have contributed changes to the file are on the left y-axis to create a swim-lane of their commits over time (the x-axis). Commit are plotted as color-coded (per-author) bubbles, whose size represents the relative magnitude of the changes.

Additionally, each commit's additions and deletions are visualized as color-coded, stacked, vertical bars, whose height represents the number of affected lines (right y-axis). Added lines are shown in green, while deleted lines are red.

Worktrees view #

Worktrees view

Worktrees allow you to easily work on different branches of a repository simultaneously. You can create multiple working trees, each of which can be opened in individual windows or all together in a single workspace.

Features

Revision Navigation #

Revision Navigation

Current Line Blame #

Current Line Blame

Git CodeLens #

Git CodeLens

Status Bar Blame #

Status Bar Blame

Hovers #

Current Line Hovers

Current Line Hovers

Details Hover

Current Line Details Hover

Changes (diff) Hover

Current Line Changes (diff) Hover

Annotation Hovers

Annotation Hovers

Details Hover

Annotations Details Hover

Changes (diff) Hover

Annotations Changes (diff) Hover

File Blame #

File Blame

File Changes #

File Changes

File Heatmap #

File Heatmap

Side Bar Views #

GitLens adds many side bar views to provide additional rich functionality. The default layout (location) of these views can be quickly customized via the GitLens: Set Views Layout (gitlens.setViewsLayout) command from the Command Palette.

Views Layout: Source Control Views Layout: GitLens

Commits View #

Commits view

A customizable view to visualize, explore, and manage Git commits.

The Commits view lists all of the commits on the current branch, and additionally provides:


Repositories View #

Repositories view

A hidden by default, customizable view to visualize, explore, and manage Git repositories.

The Repositories view lists opened Git repositories, and additionally provides:


File History View #

File History view

A customizable view to visualize, navigate, and explore the revision history of the current file or just the selected lines of the current file.

The file history view lists all of the commits that changed the current file on the current branch, and additionally provides:


Line History View #

Line History view

A hidden by default, customizable view to visualize, navigate, and explore the revision history of the selected lines of the current file.

The line history view lists all of the commits that changed the selected lines of the current file on the current branch, and additionally provides:


Branches view #

Branches view

A customizable view to visualize, explore, and manage Git branches.

The Branches view lists all of the local branches, and additionally provides:


Remotes view #

Remotes view

A customizable view to visualize, explore, and manage Git remotes and remote branches.

The Remotes view lists all of the remotes and their remote branches, and additionally provides:


Stashes View #

Stashes view

A customizable view to visualize, explore, and manage Git stashes.

The Stashes view lists all of the stashes, and additionally provides:


Tags View #

Tags view

A customizable view to visualize, explore, and manage Git tags.

The Tags view lists all of the tags, and additionally provides:


Contributors View #

Contributors view

A hidden by default, customizable view to visualize, navigate, and explore contributors.

The Contributors view lists all of the contributors, and additionally provides:


Search & Compare View #

Search & Compare view

A hidden by default, customizable view to search and explore commit histories by message, author, files, id, etc, or visualize comparisons between branches, tags, commits, and more.

The Search & Compare view lists pinnable (saved) results for searching commit histories or for comparison operations, and additionally provides:

Git Command Palette #

Git Command Palette

Quick Commit Access #

Branch History Quick Pick Menu

File History Quick Pick Menu

Commit Search Quick Pick Menu

Commit Details Quick Pick Menu

Commit File Details Quick Pick Menu

Quick Stash Access #

Stashes Quick Pick Menu

Stash Details Quick Pick Menu

Quick Status Access #

Repository Status Quick Pick Menu

Interactive Rebase Editor #

Interactive Rebase Editor

Terminal Links #

Terminal Links

Remote Provider Integrations #

GitLens provides integrations with many Git hosting services, including GitHub, GitHub Enterprise, GitLab, GitLab self-managed, Gitea, Gerrit, GoogleSource, Bitbucket, Bitbucket Server, and Azure DevOps. You can also define custom remote providers or remote providers with custom domains as well.

All Git host integrations provide issue and pull request auto-linking, while rich integrations (e.g. GitHub & GitLab) provide more detailed hover information for auto-linked issues and pull requests, pull requests associated with branches and commits, and avatars.

Additionally, these integrations provide commands to copy the url of or open files, commits, branches, and the repository on the remote provider.

Powerful Commands #

Menus & Toolbars #

Menus & Toolbars

GitLens provides customizable menu and toolbar contributions to put you in control over where GitLens' commands are shown. The easiest way to configure these settings is via the GitLens interactive settings editor.

For example, if you uncheck the Add to the editor group toolbar you will see the following items removed from the toolbar:

Editor Group Toolbar example

You can also expand each group to control each area more granularly.

Modes #

GitLens supports user-defined modes for quickly toggling between sets of settings.

Configuration #

GitLens Interactive Settings

GitLens provides a rich interactive settings editor, an easy-to-use interface, to configure many of GitLens' powerful features. It can be accessed via the GitLens: Open Settings (gitlens.showSettingsPage) command from the Command Palette.

For more advanced customizations, refer to the settings documentation below.

GitLens Settings #

GitLens is highly customizable and provides many configuration settings to allow the personalization of almost all features.

Current Line Blame Settings #

Name Description
gitlens.currentLine.dateFormat Specifies how to format absolute dates (e.g. using the ${date} token) for the current line blame annotations. See the Moment.js docs for supported formats
gitlens.currentLine.enabled Specifies whether to provide a blame annotation for the current line, by default. Use the Toggle Line Blame Annotations command (gitlens.toggleLineBlame) to toggle the annotations on and off for the current window
gitlens.currentLine.format Specifies the format of the current line blame annotation. See Commit Tokens in the GitLens docs. Date formatting is controlled by the gitlens.currentLine.dateFormat setting
gitlens.currentLine.uncommittedChangesFormat Specifies the uncommitted changes format of the current line blame annotation. See Commit Tokens in the GitLens docs. Date formatting is controlled by the gitlens.currentLine.dateFormat setting

NOTE: Setting this to an empty string will disable current line blame annotations for uncommitted changes.
gitlens.currentLine.pullRequests.enabled Specifies whether to provide information about the Pull Request (if any) that introduced the commit in the current line blame annotation. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.currentLine.scrollable Specifies whether the current line blame annotation can be scrolled into view when it is outside the viewport. NOTE: Setting this to false will inhibit the hovers from showing over the annotation; Set gitlens.hovers.currentLine.over to line to enable the hovers to show anywhere over the line.

Git CodeLens Settings #

Name Description
gitlens.codeLens.authors.command Specifies the command to be executed when an authors CodeLens is clicked, set to (gitlens.toggleFileBlame) by default. Can be set to false to disable click actions on the CodeLens.

gitlens.toggleFileBlame - toggles file blame annotations
gitlens.toggleFileHeatmap - toggles file heatmap
gitlens.toggleFileChanges - toggles file changes since before the commit
gitlens.toggleFileChangesOnly - toggles file changes from the commit
gitlens.diffWithPrevious - opens changes with the previous revision
gitlens.revealCommitInView - reveals the commit in the Side Bar
gitlens.showCommitsInView - searches for commits within the range
gitlens.showQuickCommitDetails - shows details of the commit
gitlens.showQuickCommitFileDetails - show file details of the commit
gitlens.showQuickFileHistory - shows the current file history
gitlens.showQuickRepoHistory - shows the current branch history
gitlens.openCommitOnRemote - opens the commit on the remote service (when available)
gitlens.copyRemoteCommitUrl - copies the remote commit url to the clipboard (when available)
gitlens.openFileOnRemote - opens the file revision on the remote service (when available)
gitlens.copyRemoteFileUrl - copies the remote file url to the clipboard (when available)
gitlens.codeLens.authors.enabled Specifies whether to provide an authors CodeLens, showing number of authors of the file or code block and the most prominent author (if there is more than one)
gitlens.codeLens.enabled Specifies whether to provide any Git CodeLens, by default. Use the Toggle Git CodeLens command (gitlens.toggleCodeLens) to toggle the Git CodeLens on and off for the current window
gitlens.codeLens.includeSingleLineSymbols Specifies whether to provide any Git CodeLens on symbols that span only a single line
gitlens.codeLens.recentChange.command Specifies the command to be executed when a recent change CodeLens is clicked, set to (gitlens.showQuickCommitFileDetails) by default. Can be set to false to disable click actions on the CodeLens.

gitlens.toggleFileBlame - toggles file blame annotations
gitlens.toggleFileHeatmap - toggles file heatmap
gitlens.toggleFileChanges - toggles file changes since before the commit
gitlens.toggleFileChangesOnly - toggles file changes from the commit
gitlens.diffWithPrevious - opens changes with the previous revision
gitlens.revealCommitInView - reveals the commit in the Side Bar
gitlens.showCommitsInView - searches for commits within the range
gitlens.showQuickCommitDetails - shows details of the commit
gitlens.showQuickCommitFileDetails - show file details of the commit
gitlens.showQuickFileHistory - shows the current file history
gitlens.showQuickRepoHistory - shows the current branch history
gitlens.openCommitOnRemote - opens the commit on the remote service (when available)
gitlens.copyRemoteCommitUrl - copies the remote commit url to the clipboard (when available)
gitlens.openFileOnRemote - opens the file revision on the remote service (when available)
gitlens.copyRemoteFileUrl - copies the remote file url to the clipboard (when available)
gitlens.codeLens.recentChange.enabled Specifies whether to provide a recent change CodeLens, showing the author and date of the most recent commit for the file or code block
gitlens.codeLens.scopes Specifies where Git CodeLens will be shown in the document

document - adds CodeLens at the top of the document
containers - adds CodeLens at the start of container-like symbols (modules, classes, interfaces, etc)
blocks - adds CodeLens at the start of block-like symbols (functions, methods, etc) lines
gitlens.codeLens.symbolScopes Specifies a set of document symbols where Git CodeLens will or will not be shown in the document. Prefix with ! to avoid providing a Git CodeLens for the symbol. Must be a member of SymbolKind

Status Bar Settings #

Name Description
gitlens.statusBar.alignment Specifies the blame alignment in the status bar

left - aligns to the left
right - aligns to the right
gitlens.statusBar.command Specifies the command to be executed when the blame status bar item is clicked

gitlens.toggleFileBlame - toggles file blame annotations
gitlens.toggleFileHeatmap - toggles file heatmap
gitlens.toggleFileChanges - toggles file changes since before the commit
gitlens.toggleFileChangesOnly - toggles file changes from the commit
gitlens.diffWithPrevious - opens changes with the previous revision
gitlens.revealCommitInView - reveals the commit in the Side Bar
gitlens.showCommitsInView - searches for commits within the range
gitlens.showQuickCommitDetails - shows details of the commit
gitlens.showQuickCommitFileDetails - show file details of the commit
gitlens.showQuickFileHistory - shows the current file history
gitlens.showQuickRepoHistory - shows the current branch history
gitlens.openCommitOnRemote - opens the commit on the remote service (when available)
gitlens.copyRemoteCommitUrl - copies the remote commit url to the clipboard (when available)
gitlens.openFileOnRemote - opens the file revision on the remote service (when available)
gitlens.copyRemoteFileUrl - copies the remote file url to the clipboard (when available)
gitlens.statusBar.dateFormat Specifies how to format absolute dates (e.g. using the ${date} token) in the blame information in the status bar. See the Moment.js docs for supported formats
gitlens.statusBar.enabled Specifies whether to provide blame information in the status bar
gitlens.statusBar.format Specifies the format of the blame information in the status bar. See Commit Tokens in the GitLens docs. Date formatting is controlled by the gitlens.statusBar.dateFormat setting
gitlens.statusBar.pullRequests.enabled Specifies whether to provide information about the Pull Request (if any) that introduced the commit in the status bar. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.statusBar.reduceFlicker Specifies whether to avoid clearing the previous blame information when changing lines to reduce status bar "flashing"
gitlens.statusBar.tooltipFormat Specifies the format (in markdown) of hover shown over the blame information in the status bar. See Commit Tokens in the GitLens docs

Hover Settings #

Name Description
gitlens.hovers.annotations.changes Specifies whether to provide a changes (diff) hover for all lines when showing blame annotations
gitlens.hovers.annotations.details Specifies whether to provide a commit details hover for all lines when showing blame annotations
gitlens.hovers.annotations.enabled Specifies whether to provide any hovers when showing blame annotations
gitlens.hovers.annotations.over Specifies when to trigger hovers when showing blame annotations

annotation - only shown when hovering over the line annotation
line - shown when hovering anywhere over the line
gitlens.hovers.avatars Specifies whether to show avatar images in hovers
gitlens.hovers.avatarSize Specifies the size of the avatar images in hovers
gitlens.hovers.changesDiff Specifies whether to show just the changes to the line or the set of related changes in the changes (diff) hover

line - Shows only the changes to the line
hunk - Shows the set of related changes
gitlens.hovers.currentLine.changes Specifies whether to provide a changes (diff) hover for the current line
gitlens.hovers.currentLine.details Specifies whether to provide a commit details hover for the current line
gitlens.hovers.currentLine.enabled Specifies whether to provide any hovers for the current line
gitlens.hovers.currentLine.over Specifies when to trigger hovers for the current line

annotation - only shown when hovering over the line annotation
line - shown when hovering anywhere over the line
gitlens.hovers.detailsMarkdownFormat Specifies the format (in markdown) of the commit details hover. See Commit Tokens in the GitLens docs
gitlens.hovers.enabled Specifies whether to provide any hovers
gitlens.hovers.autolinks.enabled Specifies whether to automatically link external resources in commit messages
gitlens.hovers.autolinks.enhanced Specifies whether to lookup additional details about automatically link external resources in commit messages. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.hovers.pullRequests.enabled Specifies whether to provide information about the Pull Request (if any) that introduced the commit in the hovers. Requires a connection to a supported remote service (e.g. GitHub)

View Settings #

Name Description
gitlens.views.defaultItemLimit Specifies the default number of items to show in a view list. Use 0 to specify no limit
gitlens.views.formats.commits.label Specifies the format of commits in the views. See Commit Tokens in the GitLens docs
gitlens.views.formats.commits.description Specifies the description format of commits in the views. See Commit Tokens in the GitLens docs
gitlens.views.formats.files.label Specifies the format of a file in the views. See File Tokens in the GitLens docs
gitlens.views.formats.files.description Specifies the description format of a file in the views. See File Tokens in the GitLens docs
gitlens.views.formats.stashes.label Specifies the format of stashes in the views. See Commit Tokens in the GitLens docs
gitlens.views.formats.stashes.description Specifies the description format of stashes in the views. See Commit Tokens in the GitLens docs
gitlens.views.pageItemLimit Specifies the number of items to show in a each page when paginating a view list. Use 0 to specify no limit
gitlens.views.showRelativeDateMarkers Specifies whether to show relative date markers (Less than a week ago, Over a week ago, Over a month ago, etc) on revision (commit) histories in the views

Commits View Settings #

See also View Settings

Name Description
gitlens.views.commits.avatars Specifies whether to show avatar images instead of commit (or status) icons in the Commits view
gitlens.views.commits.files.compact Specifies whether to compact (flatten) unnecessary file nesting in the Commits view.
Only applies when gitlens.views.commits.files.layout is set to tree or auto
gitlens.views.commits.files.layout Specifies how the Commits view will display files

auto - automatically switches between displaying files as a tree or list based on the gitlens.views.commits.files.threshold value and the number of files at each nesting level
list - displays files as a list
tree - displays files as a tree
gitlens.views.commits.files.threshold Specifies when to switch between displaying files as a tree or list based on the number of files in a nesting level in the Commits view
Only applies when gitlens.views.commits.files.layout is set to auto
gitlens.views.commits.pullRequests.enabled Specifies whether to query for pull requests associated with the current branch and commits in the Commits view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.commits.pullRequests.showForBranches Specifies whether to query for pull requests associated with the current branch in the Commits view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.commits.pullRequests.showForCommits Specifies whether to show pull requests (if any) associated with commits in the Commits view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.commits.reveal Specifies whether to reveal commits in the Commits view, otherwise they will be revealed in the Repositories view
gitlens.views.commits.showBranchComparison Specifies whether to show a comparison of the current branch or the working tree with a user-selected reference (branch, tag. etc) in the Commits view

false - hides the branch comparison
branch - compares the current branch with a user-selected reference
working - compares the working tree with a user-selected reference

Repositories View Settings #

See also View Settings

Name Description
gitlens.views.repositories.avatars Specifies whether to show avatar images instead of commit (or status) icons in the Repositories view
gitlens.views.repositories.autoRefresh Specifies whether to automatically refresh the Repositories view when the repository or the file system changes
gitlens.views.repositories.autoReveal Specifies whether to automatically reveal repositories in the Repositories view when opening files
gitlens.views.repositories.branches.layout Specifies how the Repositories view will display branches

list - displays branches as a list
tree - displays branches as a tree when branch names contain slashes /
gitlens.views.repositories.branches.showBranchComparison Specifies whether to show a comparison of the branch with a user-selected reference (branch, tag. etc) under each branch in the Repositories view
gitlens.views.repositories.compact Specifies whether to show the Repositories view in a compact display density
gitlens.views.repositories.files.compact Specifies whether to compact (flatten) unnecessary file nesting in the Repositories view. Only applies when gitlens.views.repositories.files.layout is set to tree or auto
gitlens.views.repositories.files.layout Specifies how the Repositories view will display files

auto - automatically switches between displaying files as a tree or list based on the gitlens.views.repositories.files.threshold value and the number of files at each nesting level
list - displays files as a list
tree - displays files as a tree
gitlens.views.repositories.files.threshold Specifies when to switch between displaying files as a tree or list based on the number of files in a nesting level in the Repositories view. Only applies when gitlens.views.repositories.files.layout is set to auto
gitlens.views.repositories.includeWorkingTree Specifies whether to include working tree file status for each repository in the Repositories view
gitlens.views.repositories.showBranchComparison Specifies whether to show a comparison of a user-selected reference (branch, tag. etc) to the current branch or the working tree in the Repositories view
gitlens.views.repositories.showBranches Specifies whether to show the branches for each repository in the Repositories view
gitlens.views.repositories.showCommits Specifies whether to show the commits on the current branch for each repository in the Repositories view
gitlens.views.repositories.showContributors Specifies whether to show the contributors for each repository in the Repositories view
gitlens.views.repositories.showIncomingActivity Specifies whether to show the experimental incoming activity for each repository in the Repositories view
gitlens.views.repositories.showRemotes Specifies whether to show the remotes for each repository in the Repositories view
gitlens.views.repositories.showStashes Specifies whether to show the stashes for each repository in the Repositories view
gitlens.views.repositories.showTags Specifies whether to show the tags for each repository in the Repositories view
gitlens.views.repositories.showUpstreamStatus Specifies whether to show the upstream status of the current branch for each repository in the Repositories view

File History View Settings #

See also View Settings

Name Description
gitlens.views.fileHistory.avatars Specifies whether to show avatar images instead of status icons in the File History view

Line History View Settings #

See also View Settings

Name Description
gitlens.views.lineHistory.avatars Specifies whether to show avatar images instead of status icons in the Line History view

Branches View Settings #

See also View Settings

Name Description
gitlens.views.branches.avatars Specifies whether to show avatar images instead of commit (or status) icons in the Branches view
gitlens.views.branches.branches.layout Specifies how the Branches view will display branches

list - displays branches as a list
tree - displays branches as a tree
gitlens.views.branches.files.compact Specifies whether to compact (flatten) unnecessary file nesting in the Branches view.
Only applies when gitlens.views.commits.files.layout is set to tree or auto
gitlens.views.branches.files.layout Specifies how the Branches view will display files

auto - automatically switches between displaying files as a tree or list based on the gitlens.views.commits.files.threshold value and the number of files at each nesting level
list - displays files as a list
tree - displays files as a tree
gitlens.views.branches.files.threshold Specifies when to switch between displaying files as a tree or list based on the number of files in a nesting level in the Branches view
Only applies when gitlens.views.commits.files.layout is set to auto
gitlens.views.branches.pullRequests.enabled Specifies whether to query for pull requests associated with each branch and commits in the Branches view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.branches.pullRequests.showForBranches Specifies whether to query for pull requests associated with each branch in the Branches view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.branches.pullRequests.showForCommits Specifies whether to show pull requests (if any) associated with commits in the Branches view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.branches.reveal Specifies whether to reveal branches in the Branches view, otherwise they will be revealed in the Repositories view
gitlens.views.branches.showBranchComparison Specifies whether to show a comparison of the branch with a user-selected reference (branch, tag. etc) in the Branches view

false - hides the branch comparison
branch - compares the current branch with a user-selected reference

Remotes View Settings #

See also View Settings

Name Description
gitlens.views.remotes.avatars Specifies whether to show avatar images instead of commit (or status) icons in the Remotes view
gitlens.views.remotes.branches.layout Specifies how the Remotes view will display branches

list - displays branches as a list
tree - displays branches as a tree
gitlens.views.remotes.files.compact Specifies whether to compact (flatten) unnecessary file nesting in the Remotes view.
Only applies when gitlens.views.commits.files.layout is set to tree or auto
gitlens.views.remotes.files.layout Specifies how the Remotes view will display files

auto - automatically switches between displaying files as a tree or list based on the gitlens.views.commits.files.threshold value and the number of files at each nesting level
list - displays files as a list
tree - displays files as a tree
gitlens.views.remotes.files.threshold Specifies when to switch between displaying files as a tree or list based on the number of files in a nesting level in the Remotes view
Only applies when gitlens.views.commits.files.layout is set to auto
gitlens.views.remotes.pullRequests.enabled Specifies whether to query for pull requests associated with each branch and commits in the Remotes view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.remotes.pullRequests.showForBranches Specifies whether to query for pull requests associated with each branch in the Remotes view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.remotes.pullRequests.showForCommits Specifies whether to show pull requests (if any) associated with commits in the Remotes view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.remotes.reveal Specifies whether to reveal remotes in the Remotes view, otherwise they will be revealed in the Repositories view
gitlens.views.remotes.showBranchComparison Specifies whether to show a comparison of the branch with a user-selected reference (branch, tag. etc) in the Remotes view

false - hides the branch comparison
branch - compares the current branch with a user-selected reference

Stashes View Settings #

See also View Settings

Name Description
gitlens.views.stashes.files.compact Specifies whether to compact (flatten) unnecessary file nesting in the Stashes view.
Only applies when gitlens.views.commits.files.layout is set to tree or auto
gitlens.views.stashes.files.layout Specifies how the Stashes view will display files

auto - automatically switches between displaying files as a tree or list based on the gitlens.views.commits.files.threshold value and the number of files at each nesting level
list - displays files as a list
tree - displays files as a tree
gitlens.views.stashes.files.threshold Specifies when to switch between displaying files as a tree or list based on the number of files in a nesting level in the Stashes view
Only applies when gitlens.views.commits.files.layout is set to auto
gitlens.views.stashes.reveal Specifies whether to reveal stashes in the Stashes view, otherwise they will be revealed in the Repositories view

Tags View Settings #

See also View Settings

Name Description
gitlens.views.tags.avatars Specifies whether to show avatar images instead of commit (or status) icons in the Tags view
gitlens.views.tags.branches.layout Specifies how the Tags view will display tags

list - displays tags as a list
tree - displays tags as a tree
gitlens.views.tags.files.compact Specifies whether to compact (flatten) unnecessary file nesting in the Tags view.
Only applies when gitlens.views.commits.files.layout is set to tree or auto
gitlens.views.tags.files.layout Specifies how the Tags view will display files

auto - automatically switches between displaying files as a tree or list based on the gitlens.views.commits.files.threshold value and the number of files at each nesting level
list - displays files as a list
tree - displays files as a tree
gitlens.views.tags.files.threshold Specifies when to switch between displaying files as a tree or list based on the number of files in a nesting level in the Tags view
Only applies when gitlens.views.commits.files.layout is set to auto
gitlens.views.tags.reveal Specifies whether to reveal tags in the Tags view, otherwise they will be revealed in the Repositories view

Worktrees View Settings #

See also View Settings

Name Description
gitlens.views.worktrees.avatars Specifies whether to show avatar images instead of commit (or status) icons in the Worktrees view
gitlens.views.worktrees.files.compact Specifies whether to compact (flatten) unnecessary file nesting in the Worktrees view.
Only applies when gitlens.views.commits.files.layout is set to tree or auto
gitlens.views.worktrees.files.layout Specifies how the Worktrees view will display files

auto - automatically switches between displaying files as a tree or list based on the gitlens.views.commits.files.threshold value and the number of files at each nesting level
list - displays files as a list
tree - displays files as a tree
gitlens.views.worktrees.files.threshold Specifies when to switch between displaying files as a tree or list based on the number of files in a nesting level in the Worktrees view
Only applies when gitlens.views.commits.files.layout is set to auto
gitlens.views.worktrees.pullRequests.enabled Specifies whether to query for pull requests associated with the worktree branch and commits in the Worktrees view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.worktrees.pullRequests.showForBranches Specifies whether to query for pull requests associated with the worktree branch in the Worktrees view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.worktrees.pullRequests.showForCommits Specifies whether to show pull requests (if any) associated with commits in the Worktrees view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.worktrees.reveal Specifies whether to reveal worktrees in the Worktrees view, otherwise they will be revealed in the Repositories view
gitlens.views.worktrees.showBranchComparison Specifies whether to show a comparison of the worktree branch with a user-selected reference (branch, tag. etc) in the Worktrees view

false - hides the branch comparison
branch - compares the current branch with a user-selected reference

Contributors View Settings #

See also View Settings

Name Description
gitlens.views.contributors.avatars Specifies whether to show avatar images instead of commit (or status) icons in the Contributors view
gitlens.views.contributors.files.compact Specifies whether to compact (flatten) unnecessary file nesting in the Contributors view.
Only applies when gitlens.views.commits.files.layout is set to tree or auto
gitlens.views.contributors.files.layout Specifies how the Contributors view will display files

auto - automatically switches between displaying files as a tree or list based on the gitlens.views.commits.files.threshold value and the number of files at each nesting level
list - displays files as a list
tree - displays files as a tree
gitlens.views.contributors.files.threshold Specifies when to switch between displaying files as a tree or list based on the number of files in a nesting level in the Contributors view
Only applies when gitlens.views.commits.files.layout is set to auto
gitlens.views.contributors.pullRequests.enabled Specifies whether to query for pull requests associated with the current branch and commits in the Contributors view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.contributors.pullRequests.showForCommits Specifies whether to show pull requests (if any) associated with the current branch in the Contributors view. Requires a connection to a supported remote service (e.g. GitHub)
gitlens.views.contributors.showAllBranches Specifies whether to show commits from all branches in the Contributors view
gitlens.views.contributors.showStatistics Specifies whether to show contributor statistics in the Contributors view. This can take a while to compute depending on the repository size

Search & Compare View Settings #

See also View Settings

Name Description
gitlens.views.compare.files.threshold Specifies when to switch between displaying files as a tree or list based on the number of files in a nesting level in the Search Commits view
Only applies when gitlens.views.compare.files.layout is set to auto
gitlens.views.compare.avatars Specifies whether to show avatar images instead of commit (or status) icons in the Compare view
gitlens.views.compare.files.compact Specifies whether to compact (flatten) unnecessary file nesting in the Compare view. Only applies when gitlens.views.compare.files.layout is set to tree or auto
gitlens.views.compare.files.layout Specifies how the Compare view will display files

auto - automatically switches between displaying files as a tree or list based on the gitlens.views.compare.files.threshold value and the number of files at each nesting level
list - displays files as a list
tree - displays files as a tree
gitlens.views.compare.files.threshold Specifies when to switch between displaying files as a tree or list based on the number of files in a nesting level in the Compare view. Only applies when gitlens.views.compare.files.layout is set to auto
gitlens.views.search.avatars Specifies whether to show avatar images instead of commit (or status) icons in the Search Commits view
gitlens.views.search.files.compact Specifies whether to compact (flatten) unnecessary file nesting in the Search Commits view
Only applies when gitlens.views.compare.files.layout is set to tree or auto
gitlens.views.search.files.layout Specifies how the Search Commits view will display files
auto - automatically switches between displaying files as a tree or list based on the gitlens.views.compare.files.threshold value and the number of files at each nesting level
list - displays files as a list
tree - displays files as a tree

File Blame Settings #

Name Description
gitlens.blame.avatars Specifies whether to show avatar images in the file blame annotations
gitlens.blame.compact Specifies whether to compact (deduplicate) matching adjacent file blame annotations
gitlens.blame.dateFormat Specifies how to format absolute dates (e.g. using the ${date} token) in file blame annotations. See the Moment.js docs for supported formats
gitlens.blame.format Specifies the format of the file blame annotations. See Commit Tokens in the GitLens docs. Date formatting is controlled by the gitlens.blame.dateFormat setting
gitlens.blame.heatmap.enabled Specifies whether to provide a heatmap indicator in the file blame annotations
gitlens.blame.heatmap.location Specifies where the heatmap indicators will be shown in the file blame annotations

left - adds a heatmap indicator on the left edge of the file blame annotations
right - adds a heatmap indicator on the right edge of the file blame annotations
gitlens.blame.highlight.enabled Specifies whether to highlight lines associated with the current line
gitlens.blame.highlight.locations Specifies where the associated line highlights will be shown

gutter - adds an indicator to the gutter
line - adds a full-line highlight background color
overview - adds an indicator to the scroll bar
gitlens.blame.ignoreWhitespace Specifies whether to ignore whitespace when comparing revisions during blame operations
gitlens.blame.separateLines Specifies whether file blame annotations will have line separators
gitlens.blame.toggleMode Specifies how the file blame annotations will be toggled

file - toggles each file individually
window - toggles the window, i.e. all files at once

File Changes Settings #

Name Description
gitlens.changes.locations Specifies where the indicators of the file changes annotations will be shown

gutter - adds an indicator to the gutter
line - adds a full-line highlight background color
overview - adds an indicator to the scroll bar
gitlens.changes.toggleMode Specifies how the file changes annotations will be toggled

file - toggles each file individually
window - toggles the window, i.e. all files at once

File Heatmap Settings #

Name Description
gitlens.heatmap.ageThreshold Specifies the age of the most recent change (in days) after which the file heatmap annotations will be cold rather than hot (i.e. will use gitlens.heatmap.coldColor instead of gitlens.heatmap.hotColor)
gitlens.heatmap.coldColor Specifies the base color of the file heatmap annotations when the most recent change is older (cold) than the gitlens.heatmap.ageThreshold value
gitlens.heatmap.hotColor Specifies the base color of the file heatmap annotations when the most recent change is newer (hot) than the gitlens.heatmap.ageThreshold value
gitlens.heatmap.locations Specifies where the indicators of the file heatmap annotations will be shown

gutter - adds an indicator to the gutter
line - adds a full-line highlight background color
overview - adds an indicator to the scroll bar
gitlens.heatmap.toggleMode Specifies how the file heatmap annotations will be toggled

file - toggles each file individually
window - toggles the window, i.e. all files at once

Git Command Palette Settings #

Name Description
gitlens.gitCommands.closeOnFocusOut Specifies whether to dismiss the Git Commands Palette when focus is lost (if not, press ESC to dismiss)
gitlens.gitCommands.search.matchAll Specifies whether to match all or any commit message search patterns
gitlens.gitCommands.search.matchCase Specifies whether to match commit search patterns with or without regard to casing
gitlens.gitCommands.search.matchRegex Specifies whether to match commit search patterns using regular expressions
gitlens.gitCommands.search.showResultsInSideBar Specifies whether to show the commit search results directly in the quick pick menu, in the Side Bar, or will be based on the context
gitlens.gitCommands.skipConfirmations Specifies which (and when) Git commands will skip the confirmation step, using the format: git-command-name:(menu/command)
gitlens.gitCommands.sortBy Specifies how Git commands are sorted in the Git Command Palette

name - sorts commands by name
usage - sorts commands by last used date

Terminal Links Settings #

Name Description
gitlens.terminalLinks.enabled Specifies whether to enable terminal links — autolinks in the integrated terminal to quickly jump to more details for commits, branches, tags, and more

Remote Provider Integration Settings #

Name Description
gitlens.integrations.enabled Specifies whether to enable rich integrations with any supported remote services
gitlens.remotes Specifies custom remote services to be matched with Git remotes to detect custom domains for built-in remote services or provide support for custom remote services

Supported Types (e.g. "type": "GitHub"):
  • "GitHub"
  • "GitLab"
  • "Gerrit"
  • "GoogleSource"
  • "Gitea"
  • "AzureDevOps"
  • "Bitbucket"
  • "BitbucketServer"
  • "Custom"
Example:
"gitlens.remotes": [{ "domain": "git.corporate-url.com", "type": "GitHub" }]

Example:
"gitlens.remotes": [{ "regex": "ssh:\/\/(my\.company\.com):1234\/git\/(.+)", "type": "GitHub" }]

Example:
"gitlens.remotes": [{
    "domain": "git.corporate-url.com",
    "type": "Custom",
    "name": "My Company",
    "protocol": "https",
    "urls": {
        "repository": "https://git.corporate-url.com/${repo}",
        "branches": "https://git.corporate-url.com/${repo}/branches",
        "branch": "https://git.corporate-url.com/${repo}/commits/${branch}",
        "commit": "https://git.corporate-url.com/${repo}/commit/${id}",
        "file": "https://git.corporate-url.com/${repo}?path=${file}${line}",
        "fileInBranch": "https://git.corporate-url.com/${repo}/blob/${branch}/${file}${line}",
        "fileInCommit": "https://git.corporate-url.com/${repo}/blob/${id}/${file}${line}",
        "fileLine": "#L${line}",
        "fileRange": "#L${start}-L${end}"
        }
    }]

Example:
"gitlens.remotes": [{
    "regex": "ssh:\\/\\/(my\\.company\\.com):1234\\/git\\/(.+)",
    "type": "Custom",
    "name": "My Company",
    "protocol": "https",
    "urls": {
        "repository": "https://my.company.com/projects/${repoBase}/repos/${repoPath}",
        "branches": "https://my.company.com/projects/${repoBase}/repos/${repoPath}/branches",
        "branch": "https://my.company.com/projects/${repoBase}/repos/${repoPath}/commits/${branch}",
        "commit": "https://my.company.com/projects/${repoBase}/repos/${repoPath}/commit/${id}",
        "file": "https://my.company.com/projects/${repoBase}/repos/${repoPath}?path=${file}${line}",
        "fileInBranch": "https://my.company.com/projects/${repoBase}/repos/${repoPath}/blob/${branch}/${file}${line}",
        "fileInCommit": "https://my.company.com/projects/${repoBase}/repos/${repoPath}/blob/${id}/${file}${line}",
        "fileLine": "#L${line}",
        "fileRange": "#L${start}-L${end}"
        }
    }]

Date & Time Settings #

Name Description
gitlens.defaultDateFormat Specifies how absolute dates will be formatted by default. See the Moment.js docs for supported formats
gitlens.defaultDateLocale Specifies the locale, a BCP 47 language tag, to use for date formatting, defaults to the VS Code locale. Use system to follow the current system locale, or choose a specific locale, e.g en-US — US English, en-GB — British English, de-DE — German, 'ja-JP = Japanese, etc.
gitlens.defaultDateShortFormat Specifies how short absolute dates will be formatted by default. See the Moment.js docs for supported formats
gitlens.defaultDateSource Specifies whether commit dates should use the authored or committed date
gitlens.defaultDateStyle Specifies how dates will be displayed by default
gitlens.defaultTimeFormat Specifies how times will be formatted by default. See the Moment.js docs for supported formats

Menu & Toolbar Settings #

Name Description
gitlens.menus Specifies which commands will be added to which menus
gitlens.fileAnnotations.command Specifies whether the file annotations button in the editor title shows a menu or immediately toggles the specified file annotations
null (default) - shows a menu to choose which file annotations to toggle
blame - toggles file blame annotations
heatmap - toggles file heatmap annotations
changes - toggles file changes annotations

Keyboard Shortcut Settings #

Name Description
gitlens.keymap Specifies the keymap to use for GitLens shortcut keys

alternate - adds an alternate set of shortcut keys that start with Alt (⌥ on macOS)
chorded - adds a chorded set of shortcut keys that start with Ctrl+Shift+G (⌥⌘G on macOS)
none - no shortcut keys will be added

Modes Settings #

Name Description
gitlens.mode.active Specifies the active GitLens mode, if any
gitlens.mode.statusBar.enabled Specifies whether to provide the active GitLens mode in the status bar
gitlens.mode.statusBar.alignment Specifies the active GitLens mode alignment in the status bar

left - aligns to the left
right - aligns to the right
gitlens.modes Specifies the user-defined GitLens modes

Example — adds heatmap annotations to the Reviewing mode
"gitlens.modes": { "review": { "annotations": "heatmap" } }

Example — adds a new Annotating mode with blame annotations
"gitlens.modes": {
    "annotate": {
        "name": "Annotating",
        "statusBarItemName": "Annotating",
        "description": "for root cause analysis",
        "annotations": "blame",
        "codeLens": false,
        "currentLine": false,
        "hovers": true
    }
}

Autolink Settings #

Name Description
gitlens.autolinks Specifies autolinks to external resources in commit messages. Use <num> as the variable for the reference number

Example to autolink Jira issues: (e.g. JIRA-123 ⟶ https://jira.company.com/issue?query=123)
"gitlens.autolinks": [{ "prefix": "JIRA-", "url": "https://jira.company.com/issue?query=<num>" }]

Misc Settings #

Name Description
gitlens.defaultGravatarsStyle Specifies the style of the gravatar default (fallback) images

identicon - a geometric pattern
mp - a simple, cartoon-style silhouetted outline of a person (does not vary by email hash)
monsterid - a monster with different colors, faces, etc
retro - 8-bit arcade-style pixelated faces
robohash - a robot with different colors, faces, etc
wavatar - a face with differing features and backgrounds
gitlens.liveshare.allowGuestAccess Specifies whether to allow guest access to GitLens features when using Visual Studio Live Share
gitlens.outputLevel Specifies how much (if any) output will be sent to the GitLens output channel
gitlens.showWelcomeOnInstall Specifies whether to show the Welcome (Quick Setup) experience on first install
gitlens.showWhatsNewAfterUpgrades Specifies whether to show the What's New notification after upgrading to new feature releases
gitlens.sortBranchesBy Specifies how branches are sorted in quick pick menus and views
gitlens.sortContributorsBy Specifies how contributors are sorted in quick pick menus and views
gitlens.sortTagsBy Specifies how tags are sorted in quick pick menus and views
gitlens.advanced.abbreviatedShaLength Specifies the length of abbreviated commit SHAs (shas)
gitlens.advanced.abbreviateShaOnCopy Specifies whether to copy full or abbreviated commit SHAs to the clipboard. Abbreviates to the length of gitlens.advanced.abbreviatedShaLength..
gitlens.advanced.blame.customArguments Specifies additional arguments to pass to the git blame command
gitlens.advanced.blame.delayAfterEdit Specifies the time (in milliseconds) to wait before re-blaming an unsaved document after an edit. Use 0 to specify an infinite wait
gitlens.advanced.blame.sizeThresholdAfterEdit Specifies the maximum document size (in lines) allowed to be re-blamed after an edit while still unsaved. Use 0 to specify no maximum
gitlens.advanced.caching.enabled Specifies whether git output will be cached — changing the default is not recommended
gitlens.advanced.commitOrdering Specifies the order by which commits will be shown. If unspecified, commits will be shown in reverse chronological order

date - shows commits in reverse chronological order of the commit timestamp
author-date - shows commits in reverse chronological order of the author timestamp
topo - shows commits in reverse chronological order of the commit timestamp, but avoids intermixing multiple lines of history
gitlens.advanced.externalDiffTool Specifies an optional external diff tool to use when comparing files. Must be a configured Git difftool.
gitlens.advanced.externalDirectoryDiffTool Specifies an optional external diff tool to use when comparing directories. Must be a configured Git difftool.
gitlens.advanced.fileHistoryFollowsRenames Specifies whether file histories will follow renames -- will affect how merge commits are shown in histories
gitlens.advanced.fileHistoryShowAllBranches Specifies whether file histories will show commits from all branches
gitlens.advanced.maxListItems Specifies the maximum number of items to show in a list. Use 0 to specify no maximum
gitlens.advanced.maxSearchItems Specifies the maximum number of items to show in a search. Use 0 to specify no maximum
gitlens.advanced.messages Specifies which messages should be suppressed
gitlens.advanced.quickPick.closeOnFocusOut Specifies whether to dismiss quick pick menus when focus is lost (if not, press ESC to dismiss)
gitlens.advanced.repositorySearchDepth Specifies how many folders deep to search for repositories. Defaults to git.repositoryScanMaxDepth
gitlens.advanced.similarityThreshold Specifies the amount (percent) of similarity a deleted and added file pair must have to be considered a rename
gitlens.strings.codeLens.unsavedChanges.recentChangeAndAuthors Specifies the string to be shown in place of both the recent change and authors CodeLens when there are unsaved changes
gitlens.strings.codeLens.unsavedChanges.recentChangeOnly Specifies the string to be shown in place of the recent change CodeLens when there are unsaved changes
gitlens.strings.codeLens.unsavedChanges.authorsOnly Specifies the string to be shown in place of the authors CodeLens when there are unsaved changes

Themable Colors #

GitLens defines a set of themable colors which can be provided by vscode themes or directly by the user using workbench.colorCustomizations.

Name Description
gitlens.gutterBackgroundColor Specifies the background color of the file blame annotations
gitlens.gutterForegroundColor Specifies the foreground color of the file blame annotations
gitlens.gutterUncommittedForegroundColor Specifies the foreground color of an uncommitted line in the file blame annotations
gitlens.trailingLineBackgroundColor Specifies the background color of the trailing blame annotation
gitlens.trailingLineForegroundColor Specifies the foreground color of the trailing blame annotation
gitlens.lineHighlightBackgroundColor Specifies the background color of the associated line highlights in blame annotations
gitlens.lineHighlightOverviewRulerColor Specifies the scroll bar color of the associated line highlights in blame annotations

Contributors 🙏❤

A big thanks to the people that have contributed to this project:

Also special thanks to the people that have provided support, testing, brainstorming, etc:

And of course the awesome vscode team!

License

This repository contains both OSS-licensed and non-OSS-licensed files.

All files in or under any directory named "plus" fall under LICENSE.plus.

The remaining files fall under the MIT license.

abicorios commented 2 years ago

@bugalwena, but why do you send READMY info like on answer to the feature request? Is it some misclick? Or do you mean it is already presented into the latest update? Or do you mean I can add my command by settings?

bugalwena commented 2 years ago

Misclick.

bugalwena commented 2 years ago

I have a situation here outside of my control and without my knowledge

bugalwena commented 2 years ago

I was unawares to README information. I didn't put it on GitHub I don't know how it did TBH. I only realized today

bugalwena commented 2 years ago

It all went bum up 3 days ago when I installed a new file system. When I click on a file it gets published

abicorios commented 2 years ago

Maybe universe doesn't want this feature. Also we have some buttons to remove some messages.

bugalwena commented 2 years ago

I'll be more specific. When I click on a file, the README.TXT gets published. It's not my intent.

abicorios commented 2 years ago

Yes, I understand. What do you think about this topic feature? Can be it added?