You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

677 lines
64 KiB

преди 7 години
преди 7 години
преди 6 години
преди 6 години
преди 6 години
преди 7 години
преди 7 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 6 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 6 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 6 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
преди 7 години
  1. [![](https://vsmarketplacebadge.apphb.com/version-short/eamodio.gitlens.svg)](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
  2. [![](https://vsmarketplacebadge.apphb.com/installs-short/eamodio.gitlens.svg)](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
  3. [![](https://vsmarketplacebadge.apphb.com/rating-short/eamodio.gitlens.svg)](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
  4. [![](https://img.shields.io/badge/vscode--dev--community-gitlens-blue.svg?logo=slack)](https://join.slack.com/t/vscode-dev-community/shared_invite/enQtMjIxOTgxNDE3NzM0LWU5M2ZiZDU1YjBlMzdlZjA2YjBjYzRhYTM5NTgzMTAxMjdiNWU0ZmQzYWI3MWU5N2Q1YjBiYmQ4MzY0NDE1MzY)
  5. <p align="center">
  6. <br />
  7. <img src="https://raw.githubusercontent.com/eamodio/vscode-gitlens/feature-settings/images/gitlens-header.png" alt="GitLens Logo" />
  8. </p>
  9. > 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.
  10. <br />
  11. # GitLens
  12. GitLens is a free, [open-source](https://github.com/eamodio/vscode-gitlens "Open GitLens on GitHub") extension for [Visual Studio Code](https://code.visualstudio.com) created by [Eric Amodio](http://amod.io "Learn more about Eric").
  13. GitLens simply helps you understand code better. Quickly glimpse into who, 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.
  14. Here are just some of the features that GitLens provides,
  15. - a [*GitLens* explorer](#gitlens-explorer "Jump to the GitLens explorer") to navigate and explore repositories or file histories
  16. - an on-demand [*GitLens Results* view](#gitlens-results-view "Jump to the GitLens Results view") to explore commit searches, visualize comparisions between branches, tags, commits, and more
  17. - Git authorship [code lens](#code-lens "Jump to the Code Lens") showing the most recent commit and # of authors to the top of files and/or on code blocks
  18. - an unobtrusive Git blame annotation to the end of the [current line](#current-line-blame "Jump to the Current Line Blame")
  19. - on-demand [Git blame annotations](#gutter-blame "Jump to the Gutter Blame"), including a heatmap, to the gutter for the whole file
  20. - detailed Git blame information accessible via [hovers](#hovers "Jump to the Hovers")
  21. - a status bar Git blame annotation showing author and date, by default, about the current line
  22. - many powerful commands for exploring commits and histories, comparing and navigating revisions, stash access, repository status, and more
  23. GitLens is powerful, feature rich, and also [highly customizable](#gitlens-settings "Jump to the GitLens settings docs") to meet your specific needs &mdash; find code lens intrusive or the current line blame annotation distracting &mdash; no problem, it is quick and easy to turn them off or change how they behave via the built-in *GitLens Settings* editor, a WYSIWYG editor covering many of GitLens' powerful settings. While for more advanced customizations, refer to the [GitLens settings docs](#gitlens-settings "Jump to the GitLens settings docs") and edit your vscode [user settings](https://code.visualstudio.com/docs/getstarted/settings).
  24. <p align="center">
  25. <br />
  26. <img src="https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/gitlens-preview.gif" alt="GitLens Preview">
  27. <br />
  28. </p>
  29. ## Features
  30. ### GitLens Explorer
  31. A [customizable](#gitlens-explorer-settings "Jump to the GitLens Explorer settings") explorer to navigate and explore repositories or file histories. The GitLens explorer provides two views (modes) &mdash; a Repository view and a History view.
  32. - A toolbar provides *Search Commits*, *Switch to Repository View* or *Switch to History View*, and *Refresh* commands
  33. - Quickly switch between views using the *Switch to Repository View* or *Switch to History View* commands
  34. - A context menu provides *Automatic Layout*, *List Layout*, and *Tree Layout* commands
  35. #### Repository view
  36. <p align="center">
  37. <img src="https://raw.githubusercontent.com/eamodio/vscode-gitlens/feature-settings/images/screenshot-gitlens-explorer-repository.png" alt="GitLens Explorer Repository view">
  38. </p>
  39. The repository view provides a full Git repository explorer, which has the following features,
  40. - **Repository Status**
  41. - Provides the name of the current branch, [optionally](#gitlens-explorer-settings "Jump to the GitLens explorer settings") its working tree status, and its upstream tracking branch and status (if available)
  42. - Provides indicator dots on the repository icon which denote the following:
  43. - *None* &mdash; up-to-date with the upstream
  44. - *Green* &mdash; ahead of the upstream
  45. - *Red* &mdash; behind the upstream
  46. - *Yellow* &mdash; both ahead of and behind the upstream
  47. - Provides additional upstream status nodes, if the current branch is tracking a remote branch and,
  48. - is behind the upstream &mdash; quickly see and explore the specific commits behind the upstream (i.e. commits that haven't been pulled)
  49. - is ahead of the upstream &mdash; quickly see and explore the specific commits ahead of the upstream (i.e. commits that haven't been pushed)
  50. - A context menu provides *Open Repository in Remote*, and *Refresh* commands
  51. - **Changed Files** &mdash; lists all of the "working" changes
  52. - Expands to a file-based view of all changed files in the working tree ([optionally](#gitlens-explorer-settings "Jump to the GitLens explorer settings")) and/or all files in all commits ahead of the upstream
  53. - **Branches** &mdash; lists the local branches
  54. - Indicates which branch is the current branch and [optionally](#gitlens-explorer-settings "Jump to the GitLens explorer settings") shows the remote tracking branch
  55. - A context menu provides *Open Branches in Remote*, and *Refresh* commands
  56. - Branches expand to show its revision (commit) history
  57. - Provides indicator dots on each branch icon which denote the following:
  58. - *None* &mdash; no upstream or up-to-date with the upstream
  59. - *Green* &mdash; ahead of the upstream
  60. - *Red* &mdash; behind the upstream
  61. - *Yellow* &mdash; both ahead of and behind the upstream
  62. - Context menus for each branch provide
  63. - *Open Branch in Remote* (if available), *Compare with Remote* (if available), *Compare with Index (HEAD)*, *Compare with Working Tree*, *Compare with Selected* (when available), *Compare Selected Ancestor with Working Tree* (when available), *Select for Compare*, *Open Directory Compare with Working Tree*, *Checkout Branch (via Terminal)*, *Merge Branch (via Terminal)*, *Rebase (Interactive) Branch (via Terminal)*, *Rebase (Interactive) Branch to Remote (via Terminal)*, *Squash Branch into Commit (via Terminal)*, *Create Branch (via Terminal)...*, *Delete Branch (via Terminal)*, *Create Tag (via Terminal)...*, and *Refresh* commands
  64. - Revisions (commits) expand to show the set of files changed, complete with status indicators for adds, changes, renames, and deletes
  65. - Context menus for each revision (commit) provide
  66. - *Open Commit in Remote* (if available), *Open All Changes*, *Open All Changes with Working Tree*, *Open Files*, *Open Revisions*, *Copy Commit ID to Clipboard*, *Copy Commit Message to Clipboard*, *Show Commit Details*, *Compare with Index (HEAD)*, *Compare with Working Tree*, *Compare with Selected* (when available), *Select for Compare*, *Cherry Pick Commit (via Terminal)*, *Revert Commit (via Terminal)*, *Rebase to Commit (via Terminal)*, *Reset to Commit (via Terminal)*, *Create Branch (via Terminal)...*, *Create Tag (via Terminal)...*, and *Refresh* commands
  67. - Context menus for each changed file provide
  68. - *Open Changes*, *Open Changes with Working File*, *Open File*, *Open Revision*, *Open File in Remote*, *Open Revision in Remote*, *Apply Changes*, and *Show Commit File Details* commands
  69. - **Remotes** &mdash; lists the remotes
  70. - Indicates the direction of the remote (fetch, push, both), remote service (if applicable), and repository path
  71. - A context menu provides a *Refresh* command
  72. - Remotes expands show its list of branches
  73. - Context menus for each remote provide
  74. - *Open Branches in Remote*, *Open Repository in Remote*, *Remove Remote (via Terminal)*, and *Refresh* commands
  75. - Branches expand to show its revision (commit) history
  76. - See the *Branches expand* section under **Branches** above for more details
  77. - **Stashes** &mdash; lists the stashed changes
  78. - A context menu provides *Stash Changes*, and *Refresh* commands
  79. - Stashes expand to show the set of files stashed, complete with status indicators for adds, changes, renames, and deletes
  80. - Context menus for each stash provide
  81. - *Apply Stashed Changes* (confirmation required), *Delete Stashed Changes* (confirmation required), *Open All Changes*, *Open All Changes with Working Tree*, *Open Files*, *Open Revisions*, *Copy Commit Message to Clipboard*, *Compare with Index (HEAD)*, *Compare with Working Tree*, *Compare with Selected* (when available), *Select for Compare*, and *Refresh* commands
  82. - Context menus for each stashed file provide
  83. - *Apply Changes*, *Open Changes*, *Open Changes with Working File*, *Open File*, *Open Revision*, *Open File in Remote* (if available), and *Show File History* commands
  84. - **Tags** &mdash; lists the tags
  85. - A context menu provides a *Refresh* command
  86. - Tags expand to show its revision (commit) history
  87. - Context menus for each tag provide
  88. - *Compare with Index (HEAD)*, *Compare with Working Tree*, *Compare with Selected*, *Select for Compare*, *Open Directory Compare with Working Tree*, *Delete Tag (via Terminal)*, and *Refresh* commands
  89. - Revisions (commits) expand to show the set of files changed, complete with status indicators for adds, changes, renames, and deletes
  90. - See the *Revisions (commits) expand* section under **Branches** above for more details
  91. ### History view
  92. <p align="center">
  93. <img src="https://raw.githubusercontent.com/eamodio/vscode-gitlens/feature-settings/images/screenshot-gitlens-explorer-history.png" alt="GitLens Explorer History view">
  94. </p>
  95. The history view provides the revision history of the active file, which has the following features,
  96. - Automatically updates to track the active editor
  97. - A context menu provides *Open File*, *Open File in Remote* (if available), and *Refresh* commands
  98. - Context menus for each revision (commit) provides
  99. - *Open Changes*, *Open Changes with Working File*, *Open File*, *Open Revision*, *Open File in Remote* (if available), *Open Revision in Remote* (if available), *Apply Changes*, and *Show Commit File Details* commands
  100. ### GitLens Results View
  101. <p align="center">
  102. <img src="https://raw.githubusercontent.com/eamodio/vscode-gitlens/feature-settings/images/screenshot-gitlens-results.png" alt="GitLens Results view">
  103. </p>
  104. An on-demand, [customizable](#gitlens-results-view-settings "Jump to the GitLens Results view settings") view to explore commits, histories, and searches, or visualize comparisions between branches, tags, commits, and more
  105. - A toolbar provides *Search Commits*, *Keep Results*, and *Refresh* commands
  106. - A context menu provides *Automatic Layout*, *List Layout*, *Tree Layout*, and *Close* commands
  107. #### Explore
  108. - Provides a semi-persistent results view for exploring histories, commits, and searchs
  109. - Accessible via the following commands
  110. - *Show Commit Search* command (`gitlens.showCommitSearch`)
  111. - *Show File History* command (`gitlens.showQuickFileHistory`)
  112. - *Show Commit Details* command (`gitlens.showQuickCommitDetails`)
  113. - Revisions (commits) expand show the set of files changed, complete with status indicators for adds, changes, renames, and deletes
  114. - Context menus for each revision (commit) provide
  115. - *Open Commit in Remote* (if available), *Open All Changes*, *Open All Changes with Working Tree*, *Open Files*, *Open Revisions*, *Copy Commit ID to Clipboard*, *Copy Commit Message to Clipboard*, *Show Commit Details*, *Compare with Index (HEAD)*, *Compare with Working Tree*, *Compare with Selected* (when available), *Select for Compare*, *Cherry Pick Commit (via Terminal)*, *Revert Commit (via Terminal)*, *Rebase to Commit (via Terminal)*, *Reset to Commit (via Terminal)*, *Create Branch (via Terminal)...*, *Create Tag (via Terminal)...*, and *Refresh* commands
  116. - Context menus for each changed file provide
  117. - *Open Changes*, *Open Changes with Working File*, *Open File*, *Open Revision*, *Open File in Remote*, *Open Revision in Remote*, *Apply Changes*, and *Show Commit File Details* commands
  118. #### Compare
  119. - Provides a semi-persistent results view for comparison operations
  120. - Accessible via the following commands
  121. - *Compare with Remote* command (`gitlens.explorers.compareWithRemote`)
  122. - *Compare with Index (HEAD)* command (`gitlens.explorers.compareWithHead`)
  123. - *Compare with Working Tree* command (`gitlens.explorers.compareWithWorking`)
  124. - *Compare with Selected* command (`gitlens.explorers.compareWithSelected`)
  125. - *Compare Selected Ancestor with Working Tree* command (`gitlens.explorers.compareSelectedAncestorWithWorking`)
  126. - A context menu provides *Clear Results*, *Open Directory Compare*, and *Refresh* commands
  127. - **Commits** &mdash; lists the commits between the compared revisions (branches or commits)
  128. - Revisions (commits) expand to show the set of files changed, complete with status indicators for adds, changes, renames, and deletes
  129. - See the *Revisions (commits) expand* section under **Explore** above for more details
  130. - **Changed Files** &mdash; lists the files changed between the compared revisions (branches or commits)
  131. - Expands to a file-based view of all changed files
  132. - Context menus for each changed file provide
  133. - *Open Changes*, *Open Changes with Working File*, *Open File*, *Open Revision*, *Open File in Remote*, *Open Revision in Remote*, *Apply Changes*, and *Show Commit File Details* commands
  134. ### Code Lens
  135. <p align="center">
  136. <img src="https://raw.githubusercontent.com/eamodio/vscode-gitlens/feature-settings/images/screenshot-code-lens.png" alt="Code Lens">
  137. </p>
  138. - Adds Git authorship **code lens** to the top of the file and on code blocks ([optional](#code-lens-settings "Jump to the Code Lens settings"), on by default)
  139. - **Recent Change** &mdash; author and date of the most recent commit for the file or code block
  140. - Clicking the code lens will, by [default](#code-lens-settings "Jump to the Code Lens settings"), show a **commit file details quick pick menu** with commands for comparing, navigating and exploring commits, and more
  141. - **Authors** &mdash; number of authors of the file or code block and the most prominent author (if there is more than one)
  142. - Clicking the code lens will, by [default](#code-lens-settings "Jump to the Code Lens settings"), toggle the file Git blame annotations on and off of the whole file
  143. - Will be hidden if the author of the most recent commit is also the only author of the file or block, to avoid duplicate information and reduce visual noise
  144. - Provides [customizable](#code-lens-settings "Jump to the Code Lens settings") click behavior for each code lens — choose between one of the following
  145. - Toggle file blame annotations on and off
  146. - Compare the commit with the previous commit
  147. - Show a quick pick menu with details and commands for the commit
  148. - Show a quick pick menu with file details and commands for the commit
  149. - Show a quick pick menu with the commit history of the file
  150. - Show a quick pick menu with the commit history of the current branch
  151. - Adds a *Toggle Git Code Lens* command (`gitlens.toggleCodeLens`) with a shortcut of `shift+alt+b` to toggle the code lens on and off
  152. ### Current Line Blame
  153. <p align="center">
  154. <img src="https://raw.githubusercontent.com/eamodio/vscode-gitlens/feature-settings/images/screenshot-current-line-blame.png" alt="Current Line Blame">
  155. </p>
  156. - Adds an unobtrusive, [customizable](#current-line-blame-settings "Jump to the Current Line Blame settings"), and [themable](#themable-colors "Jump to the Themable Colors"), **Git blame annotation** to the end of the current line
  157. - Contains the author, date, and message of the current line's most recent commit, by [default](#current-line-blame-settings "Jump to the Current Line Blame settings")
  158. ### Gutter Blame
  159. <p align="center">
  160. <img src="https://raw.githubusercontent.com/eamodio/vscode-gitlens/feature-settings/images/screenshot-gutter-blame.png" alt="Gutter Blame">
  161. </p>
  162. - Adds an on-demand, [customizable](#gutter-blame-settings "Jump to the Gutter Blame settings"), and [themable](#themable-colors "Jump to the Themable Colors"), **Git blame annotations** to the gutter of the whole file
  163. - Contains the commit message and date, by [default](#gutter-blame-settings "Jump to the Gutter Blame settings")
  164. ### Hovers
  165. - Adds [customizable](#hover-settings "Jump to the Hover settings") detailed Git blame information accessible via hovers
  166. #### Current Line
  167. #### Annotating
  168. ### Git Blame Annotations
  169. - Adds an unobtrusive, highly [customizable](#line-blame-annotation-settings) and [themable](#themable-colors), **Git blame annotation** to the end of the current line ([optional](#line-blame-annotation-settings), on by default)
  170. ![Line Blame Annotation](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-line-blame-annotation.png)
  171. ![Line Blame Annotations (hover)](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-line-blame-annotations.png)
  172. - Contains the author, date, and message of the line's most recent commit, by [default](#line-blame-annotation-settings)
  173. - Adds a **details** hover annotation to the current line annotation, which provides more commit details ([optional](#line-blame-annotation-settings), on by default)
  174. ![Details Blame Annotation (hover)](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-line-blame-annotations-details.png)
  175. - Provides a **quick-access command bar** with *Open Changes*, *Blame Previous Revision*, *Open in Remote*, and *Show More Actions* command buttons
  176. - Clicking the commit id will run the *Show Commit Details* command (`gitlens.showQuickCommitDetails`)
  177. - Adds a **changes** (diff) hover annotation to the current line annotation, which provides **instant access** to the line's previous version ([optional](#line-blame-annotation-settings), on by default)
  178. ![Changes Blame Annotation (hover)](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-line-blame-annotations-changes.png)
  179. - Clicking on **Changes** will run the *Compare File Revisions* command (`gitlens.diffWith`)
  180. - Clicking the current and previous commit ids will run the *Show Commit Details* command (`gitlens.showQuickCommitDetails`)
  181. - Adds on-demand, beautiful, highly [customizable](#file-blame-annotation-settings) and [themable](#themable-colors), **Git blame annotations** of the whole file
  182. ![File Blame Annotation](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-file-blame-annotation.png)
  183. - Choose between *gutter* (default) and *hover* [annotation styles](#file-blame-annotation-settings)
  184. - Contains the commit message and date, by [default](#file-blame-annotation-settings)
  185. - Adds a **details** hover annotation to the line's annotation, which provides more commit details ([optional](#file-blame-annotation-settings), on by default)
  186. ![File Details Blame Annotations (hover)](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-file-blame-annotations.png)
  187. - Provides a **quick-access command bar** with *Open Changes*, *Blame Previous Revision*, *Open in Remote*, and *Show More Actions* command buttons
  188. - Clicking the commit id will run the *Show Commit Details* command (`gitlens.showQuickCommitDetails`)
  189. - Adds a **changes**` (diff) hover annotation to the line's annotation, which provides **instant access** to the line's previous version ([optional](#file-blame-annotation-settings), on by default)
  190. - Clicking on **Changes** will run the *Compare File Revisions* command (`gitlens.diffWith`)
  191. - Clicking the current and previous commit ids will run the *Show Commit Details* command (`gitlens.showQuickCommitDetails`)
  192. - Adds a **heatmap** (age) indicator to the gutter annotations (on right edge by [default](#file-blame-annotation-settings)), which provides an easy, at-a-glance way to tell the age of a line ([optional](#file-blame-annotation-settings), on by default)
  193. - Indicator ranges from bright yellow (newer) to dark brown (older)
  194. - Press `Escape` to quickly toggle the annotations off
  195. - Adds [customizable](#status-bar-settings) **blame information** about the current line to the **status bar** ([optional](#status-bar-settings), on by default)
  196. ![Status Bar Blame](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-status-bar.png)
  197. - Contains the commit author and date, by [default](#status-bar-settings)
  198. - Clicking the status bar item will, by [default](#status-bar-settings), show a **commit details quick pick menu** with commands for comparing, navigating and exploring commits, and more
  199. - Provides [customizable](#status-bar-settings) click behavior — choose between one of the following
  200. - Toggle file blame annotations on and off
  201. - Toggle code lens on and off
  202. - Compare the line commit with the previous commit
  203. - Compare the line commit with the working tree
  204. - Show a quick pick menu with details and commands for the commit (default)
  205. - Show a quick pick menu with file details and commands for the commit
  206. - Show a quick pick menu with the commit history of the file
  207. - Show a quick pick menu with the commit history of the current branch
  208. - Adds a *Toggle File Blame Annotations* command (`gitlens.toggleFileBlame`) with a shortcut of `alt+b` to toggle the file blame annotations on and off
  209. - Also adds a *Show File Blame Annotations* command (`gitlens.showFileBlame`)
  210. - Adds a *Toggle Line Blame Annotations* command (`gitlens.toggleLineBlame`) to toggle the current line blame annotations on and off
  211. - Also adds a *Show Line Blame Annotations* command (`gitlens.showLineBlame`)
  212. ### Git Heatmap Annotations
  213. - Adds on-demand **heatmap annotations** of the whole file
  214. - Displays a **heatmap** (age) indicator near the gutter, which provides an easy, at-a-glance way to tell the age of a line
  215. - Indicator ranges from bright yellow (newer) to dark brown (older)
  216. - Press `Escape` to quickly toggle the annotations off
  217. - Adds *Toggle File Heatmap Annotations* command (`gitlens.toggleFileHeatmap`) to toggle the heatmap annotations on and off
  218. ### Git Recent Changes Annotations
  219. - Adds on-demand, [customizable](#file-recent-changes-annotation-settings) and [themable](#themable-colors), **recent changes annotations** of the whole file
  220. - Highlights all of lines changed in the most recent commit
  221. - Adds a **details** hover annotation to each line, which provides more commit details ([optional](#file-recent-changes-annotation-settings), on by default)
  222. - Clicking the commit id will run the *Show Commit Details* command (`gitlens.showQuickCommitDetails`)
  223. - Adds a **changes** (diff) hover annotation to each line, which provides **instant** access to the line's previous version ([optional](#file-recent-changes-annotation-settings), on by default)
  224. - Clicking on **Changes** will run the *Compare File Revisions* command (`gitlens.diffWith`)
  225. - Clicking the current and previous commit ids will run the *Show Commit Details* command (`gitlens.showQuickCommitDetails`)
  226. - Press `Escape` to quickly toggle the annotations off
  227. - Adds *Toggle Recent File Changes Annotations* command (`gitlens.toggleFileRecentChanges`) to toggle the recent changes annotations on and off
  228. ### Navigate and Explore
  229. - Adds a *Search Commits* command (`gitlens.showCommitSearch`) with a shortcut of `alt+/` to search for commits by message, author, file(s), commit id, or code changes
  230. - Use `<message>` to search for commits with messages that match `<message>` -- See [Git docs](https://git-scm.com/docs/git-log#git-log---grepltpatterngt)
  231. - Use `@<pattern>` to search for commits with authors that match `<pattern>` -- See [Git docs](https://git-scm.com/docs/git-log#git-log---authorltpatterngt)
  232. - Use `:<pattern>` to search for commits with file names that match `<pattern>` -- See [Git docs](https://git-scm.com/docs/git-log)
  233. - Use `#<sha>` to search for a commit with id of `<sha>` -- See [Git docs](https://git-scm.com/docs/git-log)
  234. - Use `~<pattern>` to search for commits with differences whose patch text contains added/removed lines that match `<pattern>` -- See [Git docs](https://git-scm.com/docs/git-log#git-log--Gltregexgt)
  235. - Use `=<string>` to search for commits with differences that change the number of occurrences of the specified string (i.e. addition/deletion) in a file -- See [Git docs](https://git-scm.com/docs/git-log#git-log--Sltstringgt)
  236. - Provides a *Show in Results* option to show the search results in the **GitLens Results** view
  237. - Adds commands to open files, commits, branches, and the repository in the supported remote services, **BitBucket, GitHub, GitLab, and Visual Studio Team Services** or a [**user-defined** remote services](#custom-remotes-settings) — only available if a Git upstream service is configured in the repository
  238. - Also supports [remote services with custom domains](#custom-remotes-settings), such as **BitBucket, Bitbucket Server (previously called Stash), GitHub, GitHub Enterprise, GitLab**
  239. - *Open Branches in Remote* command (`gitlens.openBranchesInRemote`) — opens the branches in the supported remote service
  240. - *Open Branch in Remote* command (`gitlens.openBranchInRemote`) — opens the current branch commits in the supported remote service
  241. - *Open Commit in Remote* command (`gitlens.openCommitInRemote`) — opens the commit revision of the active line in the supported remote service
  242. - *Open File in Remote* command (`gitlens.openFileInRemote`) — opens the active file/revision in the supported remote service
  243. - *Open Repository in Remote* command (`gitlens.openRepoInRemote`) — opens the repository in the supported remote service
  244. - Adds a *Show Current Branch History* command (`gitlens.showQuickRepoHistory`) with a shortcut of `shift+alt+h` to show a paged **branch history quick pick menu** of the current branch for exploring its commit history
  245. ![Branch History Quick Pick Menu](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-branch-history.png)
  246. - Provides entries to *Show Commit Search* and *Open Branch in <remote-service>* when available
  247. - Navigate back to the previous quick pick menu via `alt+left arrow`, if available
  248. - Navigate pages via `alt+,` and `alt+.` to go backward and forward respectively
  249. - Adds a *Show Branch History* command (`gitlens.showQuickBranchHistory`) to show a paged **branch history quick pick menu** of the selected branch for exploring its commit history
  250. - Provides the same features as *Show Current Branch History* above
  251. - Adds a *Show File History* command (`gitlens.showQuickFileHistory`) to show a paged **file history quick pick menu** of the active file for exploring its commit history
  252. ![File History Quick Pick Menu](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-file-history.png)
  253. - Provides additional entries to *Show in Results*, *Show Branch History*, and *Open File in <remote-service>* when available
  254. - Navigate back to the previous quick pick menu via `alt+left arrow`, if available
  255. - Navigate pages via `alt+,` and `alt+.` to go backward and forward respectively
  256. - Adds a *Show Commit Details* command (`gitlens.showQuickCommitDetails`) to show a **commit details quick pick menu** of the most recent commit of the active file
  257. ![Commit Details Quick Pick Menu](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-commit-details.png)
  258. - Quickly see the set of files changed in the commit, complete with status indicators for adds, changes, renames, and deletes
  259. - Provides additional entries to *Show in Results*, *Open Commit in <remote-service>* when available, *Open Files*, *Open Revisions*, *Open Directory Compare with Previous Revision*, *Open Directory Compare with Working Tree*, *Copy Commit ID to Clipboard*, *Copy Commit Message to Clipboard*
  260. - Navigate back to the previous quick pick menu via `alt+left arrow`, if available
  261. - Use the `alt+right arrow` shortcut on an entry to execute it without closing the quick pick menu, if possible — commands that open windows outside of VS Code will still close the quick pick menu unless [`"gitlens.advanced.quickPick.closeOnFocusOut": false`](#advanced-settings) is set
  262. - Use the `alt+right arrow` shortcut on a file entry in the `Changed Files` section to preview the comparison of the current revision with the previous one
  263. - Adds a *Show Commit File Details* command (`gitlens.showQuickCommitFileDetails`) with a shortcut of `alt+c` to show a **file commit details quick pick menu** of the most recent commit of the active file
  264. ![Commit File Details Quick Pick Menu](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-commit-file-details.png)
  265. - Provides entries to *Open Changes*, *Open Changes with Working File*, *Open File*, *Open Revision*, *Open File in <remote-service>* when available, *Open Revision in <remote-service>* when available, *Copy Commit ID to Clipboard*, *Copy Commit Message to Clipboard*, *Show Commit Details*, *Show File History*, and *Show Previous File History*
  266. - Navigate back to the previous quick pick menu via `alt+left arrow`, if available
  267. - Use the `alt+right arrow` shortcut on an entry to execute it without closing the quick pick menu, if possible — commands that open windows outside of VS Code will still close the quick pick menu unless [`"gitlens.advanced.quickPick.closeOnFocusOut": false`](#advanced-settings) is set
  268. - Adds a *Show Repository Status* command (`gitlens.showQuickRepoStatus`) with a shortcut of `alt+s` to show a **repository status quick pick menu** for visualizing the current repository status
  269. ![Repository Status Quick Pick Menu](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-repo-status.png)
  270. - Quickly see upstream status (if an Git upstream is configured) — complete with ahead and behind information
  271. - If you are ahead of the upstream, an entry will be shown with the number of commits ahead. Choosing it will show a limited **branch history quick pick menu** containing just the commits ahead of the upstream
  272. - If you are behind the upstream, an entry will be shown with the number of commits behind. Choosing it will show a limited **branch history quick pick menu** containing just the commits behind the upstream
  273. - Quickly see all working changes, both staged and unstaged, complete with status indicators for adds, changes, renames, and deletes
  274. - Provides entries to *Show Stashed Changes*, *Open Changed Files*, and *Close Unchanged Files*
  275. - Use the `alt+right arrow` shortcut on an entry to execute it without closing the quick pick menu, if possible — commands that open windows outside of VS Code will still close the quick pick menu unless [`"gitlens.advanced.quickPick.closeOnFocusOut": false`](#advanced-settings) is set
  276. - Use the `alt+right arrow` shortcut on a file entry in the `Staged Files` or `Unstaged Files` sections to preview the comparison of the working file with the previous revision
  277. - Adds a *Show Stashed Changes* command (`gitlens.showQuickStashList`) to show a **stashed changes quick pick menu** for exploring your repository stash history
  278. ![Stashed Changes Quick Pick Menu](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-stash-list.png)
  279. - Provides additional entries to *Stash Changes*
  280. - Navigate back to the previous quick pick menu via `alt+left arrow`, if available
  281. - Choosing a stash entry shows a **stash details quick pick menu** which is very similar to the **commit details quick pick menu** above
  282. ![Stash Details Quick Pick Menu](https://raw.githubusercontent.com/eamodio/vscode-gitlens/master/images/screenshot-stash-details.png)
  283. - Quickly see the set of files changed in the stash, complete with status indicators for adds, changes, renames, and deletes
  284. - Provides additional entries to *Apply Stashed Changes* (requires confirmation), *Delete Stashed Changes* (requires confirmation), *Open Files*, *Open Revisions*, *Open Directory Compare with Previous Revision*, *Open Directory Compare with Working Tree*, *Copy Commit Message to Clipboard*
  285. - Navigate back to the previous quick pick menu via `alt+left arrow`, if available
  286. - Use the `alt+right arrow` shortcut on an entry to execute it without closing the quick pick menu, if possible — commands that open windows outside of VS Code will still close the quick pick menu unless [`"gitlens.advanced.quickPick.closeOnFocusOut": false`](#advanced-settings) is set
  287. - Use the `alt+right arrow` shortcut on a file entry in the `Changed Files` section to preview the comparison of the current revision with the previous one
  288. - Adds a *Show Last Opened Quick Pick* command (`gitlens.showLastQuickPick`) with a shortcut of `alt+-` to quickly get back to where you were when the last GitLens quick pick menu closed
  289. ### Powerful Comparison Tools
  290. - Effortlessly navigate between comparisons via the `alt+,` and `alt+.` shortcut keys to go back and forth through a file's revisions
  291. - Provides easy access to the following comparison commands via the `Command Palette` as well as in context via the many provided quick pick menus
  292. - Adds a *Directory Compare Working Tree with...* command (`gitlens.diffDirectory`) to open the configured Git difftool to compare the working tree with the selected branch or tag
  293. - Adds a *Compare File with Branch or Tag...* command (`gitlens.diffWithBranch`) to compare the active file with the same file on the selected branch or tag
  294. - Adds a *Compare File with Next Revision* command (`gitlens.diffWithNext`) with a shortcut of `alt+.` to compare the active file/diff with the next commit revision
  295. - Adds a *Compare File with Previous Revision* command (`gitlens.diffWithPrevious`) with a shortcut of `alt+,` to compare the active file/diff with the previous commit revision
  296. - Adds a *Compare Line Revision with Previous* command (`gitlens.diffLineWithPrevious`) with a shortcut of `shift+alt+,` to compare the active file/diff with the previous line commit revision
  297. - Adds a *Compare File with Revision...* command (`gitlens.diffWithRevision`) to compare the active file with the selected revision of the same file
  298. - Adds a *Compare File with Working Revision* command (`gitlens.diffWithWorking`) with a shortcut of `shift+alt+w` to compare the most recent commit revision of the active file/diff with the working tree
  299. - Adds a *Compare Line Revision with Working File* command (`gitlens.diffLineWithWorking`) with a shortcut of `alt+w` to compare the commit revision of the active line with the working tree
  300. ### And More
  301. - Adds a *Copy Commit ID to Clipboard* command (`gitlens.copyShaToClipboard`) to copy the commit id (sha) of the active line to the clipboard or from the most recent commit to the current branch, if there is no active editor
  302. - Adds a *Copy Commit Message to Clipboard* command (`gitlens.copyMessageToClipboard`) to copy the commit message of the active line to the clipboard or from the most recent commit to the current branch, if there is no active editor
  303. - Adds a *Open Working File"* command (`gitlens.openWorkingFile`) to open the working file for the active file revision
  304. - Adds a *Open Revision...* command (`gitlens.openFileRevision`) to open the selected revision for the active file
  305. - Adds a *Open Changes (with difftool)* command (`gitlens.externalDiff`) to the source control group and source control resource context menus to open the changes of a file or set of files with the configured git difftool
  306. - Adds a *Open All Changes (with difftool)* command (`gitlens.externalDiffAll`) to open all working changes with the configured git difftool
  307. - Also adds the command to the Source Control group context menu
  308. - Adds a *Open Changed Files* command (`gitlens.openChangedFiles`) to open any files with working tree changes
  309. - Adds a *Close Unchanged Files* command (`gitlens.closeUnchangedFiles`) to close any files without working tree changes
  310. - Adds a *Apply Stashed Changes* command (`gitlens.stashApply`) to chose a stash entry to apply to the working tree from a quick pick menu
  311. - Adds a *Stash Changes* command (`gitlens.stashSave`) to save any working tree changes to the stash — can optionally provide a stash message
  312. - Also adds the command to the Source Control items context menu to stash an individual or group of files, works with multi-select too!
  313. ## Insiders
  314. Add [`"gitlens.insiders": true`](#general-settings) to your settings to join the insiders channel and get early access to upcoming features. Be aware that because this provides early access expect there to be issues.
  315. ## Themable Colors
  316. GitLens defines a set of themable colors which can be provided by vscode themes or directly by the user using [`workbench.colorCustomization`](https://code.visualstudio.com/docs/getstarted/themes#_customize-a-color-theme).
  317. |Name | Description
  318. |-----|------------
  319. |`gitlens.gutterBackgroundColor`|Specifies the background color of the gutter blame annotations
  320. |`gitlens.gutterForegroundColor`|Specifies the foreground color of the gutter blame annotations
  321. |`gitlens.gutterUncommittedForegroundColor`|Specifies the foreground color of an uncommitted line in the gutter blame annotations
  322. |`gitlens.trailingLineBackgroundColor`|Specifies the background color of the trailing blame annotation
  323. |`gitlens.trailingLineForegroundColor`|Specifies the foreground color of the trailing blame annotation
  324. |`gitlens.lineHighlightBackgroundColor`|Specifies the background color of the associated line highlights in blame annotations
  325. |`gitlens.lineHighlightOverviewRulerColor`|Specifies the overview ruler color of the associated line highlights in blame annotations
  326. ## GitLens Settings
  327. GitLens is highly customizable and provides many configuration settings to allow the personalization of almost all features.
  328. ### General Settings
  329. |Name | Description
  330. |-----|------------
  331. |`gitlens.defaultDateFormat`|Specifies how absolute dates will be formatted by default<br />See https://momentjs.com/docs/#/displaying/format/ for valid formats
  332. |`gitlens.defaultDateStyle`|Specifies how dates will be displayed by default
  333. |`gitlens.defaultGravatarsStyle`|Specifies the style of the gravatar default (fallback) images<br />`identicon` - a geometric pattern<br />`mm` - (mystery-man) a simple, cartoon-style silhouetted outline of a person (does not vary by email hash)<br />`monsterid` - a monster with different colors, faces, etc<br />`retro` - 8-bit arcade-style pixelated faces<br />`robohash` - a robot with different colors, faces, etc<br />`wavatar` - faces with differing features and backgrounds
  334. |`gitlens.insiders`|Opts into the insiders channel -- provides access to upcoming features
  335. |`gitlens.keymap`|Specifies the keymap to use for GitLens shortcut keys<br />`standard` - adds a standard set of shortcut keys<br />`chorded` - adds a chorded set of shortcut keys that all start with `Ctrl+Shift+G` (`⌥⌘G` on macOS)<br />`none` - no shortcut keys will be added
  336. |`gitlens.outputLevel`|Specifies how much (if any) output will be sent to the GitLens output channel
  337. ### GitLens Explorer Settings
  338. See also [Explorer Settings](#explorer-settings)
  339. |Name | Description
  340. |-----|------------
  341. |`gitlens.gitExplorer.autoRefresh`|Specifies whether or not to automatically refresh the **GitLens** view when the repository or the file system changes
  342. |`gitlens.gitExplorer.enabled`|Specifies whether or not to show the **GitLens** view"
  343. |`gitlens.gitExplorer.files.compact`|Specifies whether or not to compact (flatten) unnecessary file nesting in the **GitLens** view<br />Only applies when displaying files as a `tree` or `auto`
  344. |`gitlens.gitExplorer.files.layout`|Specifies how the **GitLens** view will display files<br /> `auto` - automatically switches between displaying files as a `tree` or `list` based on the `gitlens.gitExplorer.files.threshold` setting and the number of files at each nesting level<br /> `list` - displays files as a list<br /> `tree` - displays files as a tree
  345. |`gitlens.gitExplorer.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 **GitLens** view<br />Only applies when displaying files as `auto`
  346. |`gitlens.gitExplorer.includeWorkingTree`|Specifies whether or not to include working tree files inside the `Repository Status` node of the **GitLens** view
  347. |`gitlens.gitExplorer.showTrackingBranch`|Specifies whether or not to show the tracking branch when displaying local branches in the **GitLens** view"
  348. |`gitlens.gitExplorer.view`|Specifies the starting view (mode) of the **GitLens** view<br /> `auto` - shows the last selected view, defaults to `repository`<br />`history` - shows the commit history of the active file<br />`repository` - shows a repository explorer"
  349. ### GitLens Results View Settings
  350. See also [Explorer Settings](#explorer-settings)
  351. |Name | Description
  352. |-----|------------
  353. |`gitlens.resultsExplorer.files.compact`|Specifies whether or not to compact (flatten) unnecessary file nesting in the **GitLens Results** view<br />Only applies when displaying files as a `tree` or `auto`
  354. |`gitlens.resultsExplorer.files.layout`|Specifies how the **GitLens Results** view will display files<br /> `auto` - automatically switches between displaying files as a `tree` or `list` based on the `gitlens.resultsExplorer.files.threshold` setting and the number of files at each nesting level<br /> `list` - displays files as a list<br /> `tree` - displays files as a tree
  355. |`gitlens.resultsExplorer.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 **GitLens Results** view<br />Only applies when displaying files as `auto`
  356. ### Explorer Settings
  357. |Name | Description
  358. |-----|------------
  359. |`gitlens.explorers.avatars`|Specifies whether or not to show avatar images instead of commit (or status) icons in the **GitLens** and **GitLens Results** views
  360. |`gitlens.explorers.commitFileFormat`|Specifies the format of a committed file in the **GitLens** and **GitLens Results** views<br />Available tokens<br /> ${directory} - directory name<br /> ${file} - file name<br /> ${filePath} - formatted file name and path<br /> ${path} - full file path
  361. |`gitlens.explorers.commitFormat`|Specifies the format of committed changes in the **GitLens** and **GitLens Results** views<br />Available tokens<br /> ${id} - commit id<br /> ${author} - commit author<br /> ${message} - commit message<br /> ${ago} - relative commit date (e.g. 1 day ago)<br /> ${date} - formatted commit date (format specified by `gitlens.statusBar.dateFormat`)<br /> ${authorAgo} - commit author, relative commit date<br />See https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting
  362. |`gitlens.explorers.stashFileFormat`|Specifies the format of a stashed file in the **GitLens** and **GitLens Results** views<br />Available tokens<br /> ${directory} - directory name<br /> ${file} - file name<br /> ${filePath} - formatted file name and path<br /> ${path} - full file path
  363. |`gitlens.explorers.stashFormat`|Specifies the format of stashed changes in the **GitLens** and **GitLens Results** views<br />Available tokens<br /> ${id} - commit id<br /> ${author} - commit author<br /> ${message} - commit message<br /> ${ago} - relative commit date (e.g. 1 day ago)<br /> ${date} - formatted commit date (format specified by `gitlens.statusBar.dateFormat`)<br /> ${authorAgo} - commit author, relative commit date<br />See https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting
  364. |`gitlens.explorers.statusFileFormat`|Specifies the format of the status of a working or committed file in the **GitLens** and **GitLens Results** views<br />Available tokens<br /> ${directory} - directory name<br /> ${file} - file name<br /> ${filePath} - formatted file name and path<br /> ${path} - full file path<br />${working} - optional indicator if the file is uncommitted
  365. ### Code Lens Settings
  366. |Name | Description
  367. |-----|------------
  368. |`gitlens.codeLens.authors.command`|Specifies the command to be executed when the `authors` code lens is clicked<br />`gitlens.toggleFileBlame` - toggles file blame annotations<br />`gitlens.diffWithPrevious` - compares the current committed file with the previous commit<br />`gitlens.showQuickCommitDetails` - shows a commit details quick pick<br />`gitlens.showQuickCommitFileDetails` - shows a commit file details quick pick<br />`gitlens.showQuickFileHistory` - shows a file history quick pick<br />`gitlens.showQuickRepoHistory` - shows a branch history quick pick
  369. |`gitlens.codeLens.authors.enabled`|Specifies whether or not to show an `authors` code lens showing number of authors of the file or code block and the most prominent author (if there is more than one)
  370. |`gitlens.codeLens.enabled`|Specifies whether or not to provide any Git code lens, by default<br />Use the *Toggle Git Code Lens* command (`gitlens.toggleCodeLens`) to toggle the Git code lens on and off for the current window
  371. |`gitlens.codeLens.recentChange.command`|Specifies the command to be executed when the `recent change` code lens is clicked<br />`gitlens.toggleFileBlame` - toggles file blame annotations<br />`gitlens.diffWithPrevious` - compares the current committed file with the previous commit<br />`gitlens.showQuickCommitDetails` - shows a commit details quick pick<br />`gitlens.showQuickCommitFileDetails` - shows a commit file details quick pick<br />`gitlens.showQuickFileHistory` - shows a file history quick pick<br />`gitlens.showQuickRepoHistory` - shows a branch history quick pick
  372. |`gitlens.codeLens.recentChange.enabled`|Specifies whether or not to show a `recent change` code lens showing the author and date of the most recent commit for the file or code block
  373. |`gitlens.codeLens.scopes`|Specifies where Git code lens will be shown in the document<br />`document` - adds code lens at the top of the document<br />`containers` - adds code lens at the start of container-like symbols (modules, classes, interfaces, etc)<br />`blocks` - adds code lens at the start of block-like symbols (functions, methods, etc) lines
  374. |`gitlens.codeLens.scopesByLanguage`|Specifies where Git code lens will be shown in the document for the specified languages
  375. |`gitlens.codeLens.symbolScopes`|Specifies a set of document symbols where Git code lens will or will not be shown in the document<br />Prefix with `!` to not show Git code lens for the symbol<br />Must be a member of `SymbolKind`
  376. #### Current Line Blame Settings
  377. |Name | Description
  378. |-----|------------
  379. |`gitlens.currentLine.dateFormat`|Specifies how to format absolute dates (using the `${date}` token) for the current line blame annotations<br />See https://momentjs.com/docs/#/displaying/format/ for valid formats
  380. |`gitlens.currentLine.enabled`|Specifies whether or not to provide a blame annotation for the current line, by default<br />Use the *Toggle Line Blame Annotations* command (`gitlens.toggleLineBlame`) to toggle the annotations on and off for the current window
  381. |`gitlens.currentLine.format`|Specifies the format of the current line blame annotation<br />Available tokens<br />`${id}` - commit id<br />`${author}` - commit author<br />`${message}` - commit message<br />`${ago}` - relative commit date (e.g. 1 day ago)<br />`${date}` - formatted commit date (format specified by `gitlens.annotations.line.trailing.dateFormat`)<br />`${authorAgo}` - commit author, relative commit date<br />See https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting
  382. ### Gutter Blame Settings
  383. |Name | Description
  384. |-----|------------
  385. |`gitlens.blame.avatars`|Specifies whether or not to show avatar images in the gutter blame annotations
  386. |`gitlens.blame.compact`|Specifies whether or not to compact (deduplicate) matching adjacent gutter blame annotations
  387. |`gitlens.blame.dateFormat`|Specifies how to format absolute dates (using the `${date}` token) in gutter blame annotations<br />See https://momentjs.com/docs/#/displaying/format/ for valid formats
  388. |`gitlens.blame.format`|Specifies the format of the gutter blame annotations<br />Available tokens<br />`${id}` - commit id<br />`${author}` - commit author<br />`${message}` - commit message<br />`${ago}` - relative commit date (e.g. 1 day ago)<br />`${date}` - formatted commit date (format specified by `gitlens.blame.dateFormat`)<br />`${authorAgo}` - commit author, relative commit date<br />See https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting
  389. |`gitlens.blame.heatmap.enabled`|Specifies whether or not to provide a heatmap indicator in the gutter blame annotations
  390. |`gitlens.blame.heatmap.location`|Specifies where the heatmap indicators will be shown in the gutter blame annotations<br />`left` - adds a heatmap indicator on the left edge of the gutter blame annotations<br />`right` - adds a heatmap indicator on the right edge of the gutter blame annotations
  391. |`gitlens.blame.highlight.enabled`|Specifies whether or not to highlight lines associated with the current line
  392. |`gitlens.blame.highlight.locations`|Specifies where the associated line highlights will be shown<br />`gutter` - adds a gutter glyph<br />`line` - adds a full-line highlight background color<br />`overviewRuler` - adds a decoration to the overviewRuler (scroll bar)
  393. |`gitlens.blame.ignoreWhitespace`|Specifies whether or not to ignore whitespace when comparing revisions during blame operations
  394. |`gitlens.blame.separateLines`|Specifies whether or not gutter blame annotations will have line separators
  395. #### Hover Settings
  396. #### File Blame Annotation Settings
  397. |Name | Description
  398. |-----|------------
  399. |`gitlens.blame.file.annotationType`|Specifies the type of blame annotations that will be shown for the current file<br />`gutter` - adds an annotation to the beginning of each line<br />`hover` - shows annotations when hovering over each line
  400. |`gitlens.blame.file.lineHighlight.enabled`|Specifies whether or not to highlight lines associated with the current line
  401. |`gitlens.blame.file.lineHighlight.locations`|Specifies where the associated line highlights will be shown<br />`gutter` - adds a gutter glyph<br />`line` - adds a full-line highlight background color<br />`overviewRuler` - adds a decoration to the overviewRuler (scroll bar)
  402. |`gitlens.annotations.file.gutter.format`|Specifies the format of the gutter blame annotations<br />Available tokens<br />`${id}` - commit id<br />`${author}` - commit author<br />`${message}` - commit message<br />`${ago}` - relative commit date (e.g. 1 day ago)<br />`${date}` - formatted commit date (format specified by `gitlens.annotations.file.gutter.dateFormat`)<br />`${authorAgo}` - commit author, relative commit date<br />See https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting
  403. |`gitlens.annotations.file.gutter.dateFormat`|Specifies how to format absolute dates (using the `${date}` token) in gutter blame annotations<br />See https://momentjs.com/docs/#/displaying/format/ for valid formats
  404. |`gitlens.annotations.file.gutter.compact`|Specifies whether or not to compact (deduplicate) matching adjacent gutter blame annotations
  405. |`gitlens.annotations.file.gutter.gravatars`|Specifies whether or not to show avatar images in the gutter blame annotations
  406. |`gitlens.annotations.file.gutter.heatmap.enabled`|Specifies whether or not to provide a heatmap indicator in the gutter blame annotations
  407. |`gitlens.annotations.file.gutter.heatmap.location`|Specifies where the heatmap indicators will be shown in the gutter blame annotations<br />`left` - adds a heatmap indicator on the left edge of the gutter blame annotations<br />`right` - adds a heatmap indicator on the right edge of the gutter blame annotations
  408. |`gitlens.annotations.file.gutter.hover.details`|Specifies whether or not to provide a commit details hover annotation over the gutter blame annotations
  409. |`gitlens.annotations.file.gutter.hover.changes`|Specifies whether or not to provide a changes (diff) hover annotation over the gutter blame annotations
  410. |`gitlens.annotations.file.gutter.hover.wholeLine`|Specifies whether or not to trigger hover annotations over the whole line
  411. |`gitlens.annotations.file.gutter.separateLines`|Specifies whether or not gutter blame annotations will have line separators
  412. |`gitlens.annotations.file.hover.details`|Specifies whether or not to provide a commit details hover annotation over each line
  413. |`gitlens.annotations.file.hover.changes`|Specifies whether or not to provide a changes (diff) hover annotation over each line
  414. |`gitlens.annotations.file.hover.heatmap.enabled`|Specifies whether or not to provide heatmap indicators on the left edge of each line
  415. #### Line Blame Annotation Settings
  416. |Name | Description
  417. |-----|------------
  418. |`gitlens.blame.line.enabled`|Specifies whether or not to provide a blame annotation for the current line, by default<br />Use the *Toggle Line Blame Annotations* command (`gitlens.toggleLineBlame`) to toggle the annotations on and off for the current session
  419. |`gitlens.blame.line.annotationType`|Specifies the type of blame annotations that will be shown for the current line<br />`trailing` - adds an annotation to the end of the current line<br />`hover` - shows annotations when hovering over the current line
  420. |`gitlens.annotations.line.trailing.format`|Specifies the format of the trailing blame annotations<br />Available tokens<br />`${id}` - commit id<br />`${author}` - commit author<br />`${message}` - commit message<br />`${ago}` - relative commit date (e.g. 1 day ago)<br />`${date}` - formatted commit date (format specified by `gitlens.annotations.line.trailing.dateFormat`)<br />`${authorAgo}` - commit author, relative commit date<br />See https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting
  421. |`gitlens.annotations.line.trailing.dateFormat`|Specifies how to format absolute dates (using the `${date}` token) in trailing blame annotations<br />See https://momentjs.com/docs/#/displaying/format/ for valid formats
  422. |`gitlens.annotations.line.trailing.hover.details`|Specifies whether or not to provide a commit details hover annotation over the trailing blame annotations
  423. |`gitlens.annotations.line.trailing.hover.changes`|Specifies whether or not to provide a changes (diff) hover annotation over the trailing blame annotations
  424. |`gitlens.annotations.line.trailing.hover.wholeLine`|Specifies whether or not to trigger hover annotations over the whole line
  425. |`gitlens.annotations.line.hover.details`|Specifies whether or not to provide a commit details hover annotation for the current line
  426. |`gitlens.annotations.line.hover.changes`|Specifies whether or not to provide a changes (diff) hover annotation for the current line
  427. ### File Recent Changes Annotation Settings
  428. |Name | Description
  429. |-----|------------
  430. |`gitlens.recentChanges.file.lineHighlight.locations`|Specifies where the highlights of the recently changed lines will be shown<br />`gutter` - adds a gutter glyph<br />`line` - adds a full-line highlight background color<br />`overviewRuler` - adds a decoration to the overviewRuler (scroll bar)
  431. |`gitlens.annotations.file.recentChanges.hover.details`|Specifies whether or not to provide a commit details hover annotation
  432. |`gitlens.annotations.file.recentChanges.hover.changes`|Specifies whether or not to provide a changes (diff) hover annotation
  433. ### Custom Remotes Settings
  434. |Name | Description
  435. |-----|------------
  436. |`gitlens.remotes`|Specifies user-defined remote (code-hosting) services or custom domains for built-in remote services<br /><br />Example:<br />```"gitlens.remotes": [{ "domain": "git.corporate-url.com", "type": "GitHub" }]```<br /><br />Example:<br />```"gitlens.remotes": [{ ```<br />&nbsp;&nbsp;&nbsp;&nbsp;```"domain": "git.corporate-url.com",```<br />&nbsp;&nbsp;&nbsp;&nbsp;```"type": "Custom",```<br />&nbsp;&nbsp;&nbsp;&nbsp;```"name": "My Company", ```<br />&nbsp;&nbsp;&nbsp;&nbsp;```"protocol": "https",```<br />&nbsp;&nbsp;&nbsp;&nbsp;```"urls": {```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"repository": "https://git.corporate-url.com/${repo}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"branches": "https://git.corporate-url.com/${repo}/branches",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"branch": "https://git.corporate-url.com/${repo}/commits/${branch}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"commit": "https://git.corporate-url.com/${repo}/commit/${id}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"file": "https://git.corporate-url.com/${repo}?path=${file}${line}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"fileInBranch": "https://git.corporate-url.com/${repo}/blob/${branch}/${file}${line}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"fileInCommit": "https://git.corporate-url.com/${repo}/blob/${id}/${file}${line}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"fileLine": "#L${line}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"fileRange": "#L${start}-L${end}"```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```}```<br />&nbsp;&nbsp;&nbsp;&nbsp;```}]```<br /><br />Example:<br />```"gitlens.remotes": [{ ```<br />&nbsp;&nbsp;&nbsp;&nbsp;```"domain": "git.corporate-url.com",```<br />&nbsp;&nbsp;&nbsp;&nbsp;```"type": "Custom",```<br />&nbsp;&nbsp;&nbsp;&nbsp;```"name": "My Company", ```<br />&nbsp;&nbsp;&nbsp;&nbsp;```"protocol": "https",```<br />&nbsp;&nbsp;&nbsp;&nbsp;```"urls": {```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"repository": "https://git.corporate-url.com/projects/${repoBase}/repos/${repoPath}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"branches": "https://git.corporate-url.com/projects/${repoBase}/repos/${repoPath}/branches",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"branch": "https://git.corporate-url.com/projects/${repoBase}/repos/${repoPath}/commits/${branch}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"commit": "https://git.corporate-url.com/projects/${repoBase}/repos/${repoPath}/commit/${id}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"file": "https://git.corporate-url.com/projects/${repoBase}/repos/${repoPath}?path=${file}${line}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"fileInBranch": "https://git.corporate-url.com/projects/${repoBase}/repos/${repoPath}/blob/${branch}/${file}${line}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"fileInCommit": "https://git.corporate-url.com/projects/${repoBase}/repos/${repoPath}/blob/${id}/${file}${line}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"fileLine": "#L${line}",```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```"fileRange": "#L${start}-L${end}"```<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;```}```<br />&nbsp;&nbsp;&nbsp;&nbsp;```}]```
  437. ### Status Bar Settings
  438. |Name | Description
  439. |-----|------------
  440. |`gitlens.statusBar.enabled`|Specifies whether or not to provide blame information on the status bar
  441. |`gitlens.statusBar.alignment`|Specifies the blame alignment in the status bar<br />`left` - align to the left, `right` - align to the right
  442. |`gitlens.statusBar.command`|Specifies the command to be executed when the blame status bar item is clicked<br />`gitlens.toggleFileBlame` - toggles file blame annotations<br />`gitlens.diffWithPrevious` - compares the current line commit with the previous<br />`gitlens.diffWithWorking` - compares the current line commit with the working tree<br />`gitlens.toggleCodeLens` - toggles Git code lens<br />`gitlens.showQuickCommitDetails` - shows a commit details quick pick<br />`gitlens.showQuickCommitFileDetails` - shows a commit file details quick pick<br />`gitlens.showQuickFileHistory` - shows a file history quick pick<br />`gitlens.showQuickRepoHistory` - shows a branch history quick pick
  443. |`gitlens.statusBar.format`|Specifies the format of the blame information on the status bar<br />Available tokens<br />`${id}` - commit id<br />`${author}` - commit author<br />`${message}` - commit message<br />`${ago}` - relative commit date (e.g. 1 day ago)<br />`${date}` - formatted commit date (format specified by `gitlens.statusBar.dateFormat`)<br />See https://github.com/eamodio/vscode-gitlens/wiki/Advanced-Formatting for advanced formatting
  444. |`gitlens.statusBar.dateFormat`|Specifies the date format of absolute dates shown in the blame information on the status bar<br />See https://momentjs.com/docs/#/displaying/format/ for valid formats
  445. ### Strings Settings
  446. |Name | Description
  447. |-----|------------
  448. |`gitlens.strings.codeLens.unsavedChanges.recentChangeAndAuthors`|Specifies the string to be shown in place of both the `recent change` and `authors` code lens when there are unsaved changes
  449. |`gitlens.strings.codeLens.unsavedChanges.recentChangeOnly`|Specifies the string to be shown in place of the `recent change` code lens when there are unsaved changes
  450. |`gitlens.strings.codeLens.unsavedChanges.authorsOnly`|Specifies the string to be shown in place of the `authors` code lens when there are unsaved changes
  451. ### Advanced Settings
  452. |Name | Description
  453. |-----|------------
  454. |`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
  455. |`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
  456. |`gitlens.advanced.caching.enabled`|Specifies whether git output will be cached -- changing the default is not recommended
  457. |`gitlens.advanced.git`|Specifies the git path to use
  458. |`gitlens.advanced.maxListItems`|Specifies the maximum number of items to show in a list. Use 0 to specify no maximum
  459. |`gitlens.advanced.menus`|Specifies which commands will be added to which menus
  460. |`gitlens.advanced.messages`|Specifies which messages should be suppressed
  461. |`gitlens.advanced.quickPick.closeOnFocusOut`|Specifies whether or not to close QuickPick menus when focus is lost
  462. |`gitlens.advanced.repositorySearchDepth`|Specifies how many folders deep to search for repositories
  463. |`gitlens.advanced.telemetry.enabled`|Specifies whether or not to enable GitLens telemetry (even if enabled still abides by the overall `telemetry.enableTelemetry` setting
  464. ## Known Issues
  465. - If the `Copy to * clipboard` commands don't work on Linux -- `xclip` needs to be installed. You can install it via `sudo apt-get install xclip`
  466. ## Contributors
  467. A big thanks to the people that have contributed to this project:
  468. - Amanda Cameron ([@AmandaCameron](https://github.com/AmandaCameron)) — [contributions](https://github.com/eamodio/vscode-gitlens/commits?author=AmandaCameron))
  469. - Helmut Januschka ([@hjanuschka](https://github.com/hjanuschka)) — [contributions](https://github.com/eamodio/vscode-gitlens/commits?author=hjanuschka))
  470. - Chris Kaczor ([@ckaczor](https://github.com/ckaczor)) — [contributions](https://github.com/eamodio/vscode-gitlens/commits?author=ckaczor))
  471. - Peng Lyu ([@rebornix](https://github.com/rebornix)) — [contributions](https://github.com/eamodio/vscode-gitlens/commits?author=rebornix))
  472. - Aurelio Ogliari ([@nobitagit](https://github.com/nobitagit)) — [contributions](https://github.com/eamodio/vscode-gitlens/commits?author=nobitagit)
  473. - Johannes Rieken ([@jrieken](https://github.com/jrieken)) — [contributions](https://github.com/eamodio/vscode-gitlens/commits?author=jrieken))
  474. - Zack Schuster ([@zackschuster](https://github.com/zackschuster)) — [contributions](https://github.com/eamodio/vscode-gitlens/commits?author=zackschuster)
  475. - SpaceEEC ([@SpaceEEC](https://github.com/SpaceEEC)) — [contributions](https://github.com/eamodio/vscode-gitlens/commits?author=SpaceEEC)
  476. - Alexey Vasyukov ([@notmedia](https://github.com/notmedia)) — [contributions](https://github.com/eamodio/vscode-gitlens/commits?author=notmedia))
  477. Also special thanks to the people that have provided support, testing, brainstorming, etc:
  478. - Brian Canzanella ([@bcanzanella](https://github.com/bcanzanella))
  479. - Matt King ([@KattMingMing](https://github.com/KattMingMing))
  480. And of course the awesome [vscode](https://github.com/Microsoft/vscode/graphs/contributors) team!