GitLens 教学(学习更新中)
GitLens 是什么?
GitLens 是安装在 Visual Studio Code (VS Code) 中的一个功能极其强大的扩展程序,它直接内嵌在您的代码编辑器中,极大地增强了 VS Code 内置的 Git 功能。它的核心目标是:
- 深刻理解代码历史: 让您轻松查看“谁”、“何时”以及“为什么”修改了代码。
- 提升开发效率: 提供可视化工具(如 Commit Graph)、快速导航和工作流程管理(如 Worktrees),减少上下文切换。
- 优化团队协作: 简化代码审查(PR 处理)、分享(Cloud Patches)和讨论(Code Suggest)的流程。
- 内联信息集成: 在您的代码行旁边、文件顶部等位置直接展示丰富的 Git 信息,无需离开编辑器。
核心版本:
- GitLens Community (社区版 - 免费): 提供了极其强大的核心功能,如内联 blame、文件历史导航、丰富的悬停信息、CodeLens 等,非常适合个人开发者了解代码历史和基础 Git 操作。
- GitLens Pro (专业版 - 需订阅): 解锁了更高级的工作流功能,主要面向团队协作和生产效率提升,例如:
- Home View (工作首页): 工作流程管理中枢。
- Launchpad (任务板): 集中管理 PR 和任务。
- Pro Commit Graph (加强版提交图谱): 强大的搜索、过滤和可视化操作。
- Worktrees (工作树): 同时处理多个分支。
- Visual File History (可视化文件历史): 图形化展示文件变更。
- GitKraken AI (预览): AI 辅助生成提交信息、PR 描述等。
- Cloud Patches / Code Suggest (预览): 高级的代码分享和建议功能。
- Pro 功能在公开仓库上是免费的。对于私有仓库,需要订阅。
基础功能详解与使用步骤:
以下介绍的功能在社区版 (GitLens Community) 中基本都可用,除非特别标注(Pro)
。
-
内联与状态栏 Blame 信息 (Inline & Status Bar Blame)
- 功能: 在每一行代码的末尾(或状态栏)显示该行最后一次修改的提交作者(缩写名)和修改时间(例如是几天前)。
- 如何使用:
- 安装后默认开启。
- 查看详情: 将鼠标悬停在作者名/时间上,会出现一个丰富的“悬停卡片”(Hover),展示该提交的完整信息:作者全名、头像(如果集成已连接)、提交时间、提交信息(commit message)、相关的 Issue/PR 链接(如果存在)、以及查看该提交、浏览文件历史、比较变更等操作的快捷按钮。
- 控制显示:
- 打开 VS Code 命令面板 (
Ctrl+Shift+P
或Cmd+Shift+P
)。 - 输入并执行
Toggle Line Blame
或Toggle Git CodeLens
来开启/关闭这些注释。
- 打开 VS Code 命令面板 (
-
文件顶部 CodeLens
- 功能: 在文件编辑器的顶部区域显示关键信息。
- Recent Change: 显示该文件最近一次修改的提交作者和时间。
- Authors: 显示参与修改该文件的主要作者数量及最活跃的作者(如果有多位)。
- 如何使用:
- 该信息直接显示在文件代码上方。
- 将鼠标悬停在
Recent Change
或Authors
上,同样会显示详细的“悬停卡片”(Hover),内容类似于行尾 Blame 的卡片,提供文件级别的提交信息和操作入口。点击这些信息通常可以打开相关视图。
- 功能: 在文件编辑器的顶部区域显示关键信息。
-
文件级别注释 (File Annotations)
- 功能: 对整个文件进行可视化标记。
- File Blame: 在每一行代码的开头显示该行的最后修改作者(通常显示在编辑器左侧装订线 gutter 区域)。
- File Changes: 在左侧装订线显示每行代码是何时(如提交序号)被修改或添加的。
- File Heatmap: 用颜色深浅(通常是蓝色系)直观表示一行代码的“年龄”,越新(最近修改)颜色越深/亮,越旧颜色越浅/暗。
- 如何使用:
- 打开要查看的文件。
- 打开 VS Code 命令面板 (
Ctrl+Shift+P
或Cmd+Shift+P
)。 - 输入并执行对应的命令:
Toggle File Blame
,Toggle File Changes
, 或Toggle File Heatmap
。执行一次开启,再执行一次关闭。 - 快捷键通常可以在命令面板查看或设置。
- 功能: 对整个文件进行可视化标记。
-
修订导航 (Revision Navigation)
- 功能: 轻松查看文件或代码块的早期版本(历史记录)。
- 如何使用:
- 打开一个文件。
- 在文件编辑器的右上角(标题栏区域),您会看到一个类似时钟/历史记录的图标,旁边可能显示
HEAD
(表示当前最新版本)。 - 查看上一个版本: 点击
<
按钮或时钟图标左边的箭头。 - 查看下一个版本: 点击
>
按钮或时钟图标右边的箭头(如果您已经回退到了历史版本)。 - 鼠标悬停在版本状态上,会显示当前查看的是哪个提交版本(哈希值或标签)。
- 您可以选择一行或几行代码后再点击这些按钮,查看这些特定行在历史中的变化。
-
GitLens 侧边栏视图
- 功能: GitLens 在 VS Code 的活动栏(通常是左侧)添加了多个强大的视图面板。
- 如何访问: 点击 VS Code 左侧活动栏中的 GitLens 图标(狐狸头或 Git 图标,具体取决于您的主题)。
- 核心视图面板:
- GitLens:
- Home (家/主页)
(Pro 增强)
: 工作流程中心(下文详述)。 - Commits (提交): 按时间倒序列出当前分支的所有提交(包括本地未推送的)。点击提交可以看到详细信息和文件变更。
(基本功能免费)
- Branches (分支): 查看和管理本地及远程分支。右键分支可以进行检出、合并、比较、推送等操作。
(基本功能免费)
- Remotes (远程): 管理远程仓库连接。
(基本功能免费)
- Stashes (储藏): 查看、应用或删除您存储起来的更改。
(基本功能免费)
- Tags (标签): 查看和管理标签。
(基本功能免费)
- Worktrees (工作树)
(Pro)
: - Contributors (贡献者): 列出仓库的贡献者及其活动统计。
(基本功能免费)
- Search & Compare (搜索与比较): 强大的提交搜索和分支/标签/提交比较工具。
(基本搜索免费, 高级搜索/过滤 Pro)
- Home (家/主页)
- Source Control (源代码管理): 此部分是 VS Code 内置面板的增强,整合了 GitLens 的一些功能。
- GitLens:
-
(GitLens Pro 亮点) Home View (工作首页)
- 功能: 您日常工作流程的指挥中心。围绕三个核心问题构建:
- Active Work (当前工作): 显示当前仓库、分支状态、未提交的更改,以及与当前分支关联的 Issue/PR(如果集成已连接并配置 Pro)。一键操作(同步、切换分支、查看更改、打开 Commit Graph)。
- Launchpad (任务板)
(Pro)
: 集中展示需要您关注的 Pull Requests(根据您的集成连接)和分配给您的任务(Issue),方便您开始新工作或继续审查。 - Recent (最近): 列出您最近处理过的分支、工作树 (Pro) 或 PR,方便您快速切换回上下文。
- 如何使用:
- 点击 VS Code 活动栏中的 GitLens 图标。
- 默认打开的就是 Home 视图标签页。
- 在 Active Work 部分使用操作按钮。
- 在 Launchpad 点击 “Start Work on an Issue” 或 “View Pull Request”。
- 在 Recent 查看并点击项目跳转。
- 集成连接: 通常在 Home View 顶部或设置中有提示/按钮让您连接 GitHub/GitLab/Jira 等账号,以解锁相关功能(特别是 Launchpad 和 Active Work 中的 Issue/PR 关联)。
- 功能: 您日常工作流程的指挥中心。围绕三个核心问题构建:
-
(GitLens Pro 亮点) Commit Graph (提交图谱)
- 功能: 以图形化的方式直观展示仓库的分支结构、提交历史、标签、合并等。远胜于
git log --graph
。提供强大的搜索、过滤、右键菜单操作(检出、合并、变基、创建分支/标签等)。 - 如何打开:
- 方法一 (推荐): 在 Home View -> Active Work 部分,点击右侧的小图表图标 (通常在分支信息旁边)。
- 方法二: 打开 VS Code 命令面板 (
Ctrl+Shift+P
或Cmd+Shift+P
),输入并执行Toggle Commit Graph
。执行Toggle Maximized Commit Graph
可切换最大化视图。 - 方法三: 在底部面板区域可能默认或可以配置一个更紧凑的 Commit Graph 视图。
- 基本操作:
- 缩放: 鼠标滚轮或触摸板手势。
- 平移: 按住鼠标左键拖拽画布。
- 查看提交详情: 点击某个提交节点。
- 执行操作: 右键点击提交节点、分支标签或空白区域,会弹出丰富的上下文菜单(检出、创建分支、合并、变基、比较、查看文件历史等)。这是图形化操作替代 Git 命令的核心。
- 搜索: 使用视图顶部的搜索框搜索提交信息、作者、文件、哈希值等 (
基本搜索免费,高级过滤 Pro
)。
- 功能: 以图形化的方式直观展示仓库的分支结构、提交历史、标签、合并等。远胜于
入门建议:
- 安装: 直接在 VS Code 扩展市场搜索
GitLens
并安装。 - 初次探索: 打开一个 Git 仓库中的文件。
- 看内联信息: 观察行尾的状态栏或装订线,悬停查看详情。
- 看文件顶部: 留意
Recent Change
和Authors
信息,悬停查看。 - 尝试导航历史: 在文件编辑器右上角尝试点击箭头回退文件历史。
- 打开 Home View: 点击左侧 GitLens 图标,浏览 Home 页面的各个部分。
- 打开 Commit Graph (即使免费版也可体验基本视图): 通过 Home 页图标或命令面板打开,感受图形化历史。
- 连接集成 (可选但推荐): 在 Home View 或设置中连接您的 GitHub/GitLab 等账号。
- 查阅设置: VS Code 设置 (
Ctrl+,
orCmd+,
) 中搜索gitlens
,有大量选项可以定制 GitLens 的行为和外观。根据个人喜好调整 blame 风格、日期格式、热图颜色等。
总结:
GitLens 将深度 Git 集成无缝地带入您的编辑器。从基本的 “谁改了这行代码?”(blame 信息),到高效的代码历史导航(修订导航),再到可视化的分支管理(Commit Graph)和现代化的团队协作流程管理(Home View, Launchpad,Cloud Patches),它极大地提升了开发者的体验和工作效率。社区版的功能已经非常强大,足以满足个人了解历史和基础 Git 操作的需求。而 GitLens Pro 则在团队协作、高级工作流管理和私有仓库支持上提供了更大的价值。从最基础的内联 blame 开始探索,逐步熟悉更多功能,您会发现它几乎是现代 VS Code 开发的必备神器。
相关文章:
GitLens 教学(学习更新中)
GitLens 是什么? GitLens 是安装在 Visual Studio Code (VS Code) 中的一个功能极其强大的扩展程序,它直接内嵌在您的代码编辑器中,极大地增强了 VS Code 内置的 Git 功能。它的核心目标是: 深刻理解代码历史: 让您轻…...

C#中数据绑定的简单例子
数据绑定允许将控件的属性和数据链接起来——控件属性值发生改变,会导致数据跟着自动改变。 数据绑定还可以是双向的——控件属性值发生改变,会导致数据跟着自动改变;数据发生改变,也会导致控件属性值跟着自动改变。 1、数据绑定…...

VR 技术在农业领域或许是一抹新曙光
在科技日新月异的今天,VR(虚拟现实)技术已不再局限于游戏、影视等娱乐范畴,正逐步渗透到各个传统行业,为其带来全新的发展契机,农业领域便是其中之一。VR 技术利用计算机生成三维虚拟世界,给予用户视觉、听觉、触觉等多…...

【JVM】Java程序运行时数据区
运行时数据区 运行时数据区是Java程序执行过程中管理的内存区域 Java 运行时数据区组成(JVM 内存结构) Java 虚拟机(JVM)的运行时数据区由以下核心部分组成: 线程私有:程序计数器、Java虚拟机栈、本地方…...
NVIDIA英伟达describe-anything软件本地电脑安装部署完整教程
describe-anything是英伟达联合其他大学开发的一款图片视频内容分析总结软件,可通过AI描述任意图片视频选中区域内容,非常强大,下面是describe-anything本地电脑安装部署教程。 首先电脑上安装git https://github.com/git-for-windows/git/…...

计算机视觉入门:OpenCV与YOLO目标检测
计算机视觉入门:OpenCV与YOLO目标检测 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 计算机视觉入门:OpenCV与YOLO目标检测摘要引言技术原理对比1. OpenCV:传统图像处理与机器学…...
Java 中的 ThreadLocal 详解:从基础到源码
Java 中的 ThreadLocal 详解:从基础到源码 引言 在 Java 多线程编程中,ThreadLocal是一个经常被提及的概念。它提供了一种线程局部变量的机制,使得每个线程都可以独立地存储和访问自己的变量副本,而不会与其他线程产生冲突。本文…...
(二)开启深度学习动手之旅:先筑牢预备知识根基
1 数据操作 数据操作是深度学习的基础,包括数据的创建、索引、切片、运算等操作。这些操作是后续复杂模型构建和训练的前提。 入门 :理解如何使用NumPy创建数组,这是深度学习中数据存储的基本形式。掌握数组的属性(如数据类型dt…...
Spring Boot3.4.1 集成redis
Spring Boot3.4.1 集成redis 第一步 引入依赖 <!-- redis 缓存操作 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- pool 对象池 …...

【Prometheus+Grafana实战:搭建监控系统(含告警配置)】
什么是Prometheus和Grafana? Prometheus:一款开源的监控告警工具,擅长时序数据存储和多维度查询(通过PromQL),采用Pull模型主动抓取目标指标。Grafana:数据可视化平台,支持多种数据…...
操作系统原理第9章 磁盘存储器管理 重点内容
目录 (一)外存的组织方式种类 (二)FAT 系统(计算) (三)文件存储空间的管理方式 (一)外存的组织方式种类 连续组织方式 原理:在磁盘等外存上&…...

一文速通Python并行计算:11 Python多进程编程-进程之间的数据安全传输-基于队列和管道
一文速通 Python 并行计算:11 Python 多进程编程-进程之间的数据安全传输-基于队列和管道 摘要: Python 多进程中,Queue 和 Pipe 提供进程间安全通信。Queue 依赖锁和缓冲区,保障数据原子性和有序性;Pipe 实现点对点单…...

LangChain-Tool和Agent结合智谱AI大模型应用实例2
1.Tool(工具) 定义与功能 单一功能模块:Tool是完成特定任务的独立工具,每个工具专注于一项具体的操作,例如:搜索、计算、API调用等 无决策能力:工具本身不决定何时被调用,仅在被触发时执行预设操作 输入输出明确:每个工具需明确定义输入、输出参数及格式 2.Agent(…...
HTML、XML、JSON 是什么?有什么区别?又是做什么的?
在学习前端开发或者理解互联网工作原理的过程中,我们经常会遇到三个非常重要的概念:HTML、XML 和 JSON。它们看起来有点像,但其实干的事情完全不同。 🏁 一、他们是谁?什么时候诞生的? 名称全称诞生时间谁…...
C++中IO文件输入输出知识详解和注意事项
以下内容将从文件流类体系、打开模式、文本与二进制 I/O、随机访问、错误处理、性能优化等方面,详解 C 中文件输入输出的使用要点,并配以示例。 一、文件流类体系 C 标准库提供三种文件流类型,均定义在 <fstream> 中: std…...

centos7.6阿里云镜像各个版本介绍
(水一期) Index of /centos-vault/centos/7.6.1810/isos/x86_64/ File NameFile SizeDateParent directory/--0_README.txt2.4 KB2018-12-01 21:21CentOS-7-x86_64-DVD-1810.iso4.3 GB2018-11-26 07:55CentOS-7-x86_64-DVD-1810.torrent86.0 KB2018-12-…...

InnoDB引擎逻辑存储结构及架构
简化理解版 想象 InnoDB 是一个高效运转的仓库: 核心内存区 (大脑 & 高速缓存 - 干活超快的地方) 缓冲池 Buffer Pool (最最核心!): 作用: 相当于仓库的“高频货架”。把最常用的数据(表数据、索引)从…...
KVM——CPU独占
文章目录 机器现况信息配置CPU独占(pin)启用 CPU 独占(隔离)验证 机器现况信息 [rootkvm-server ~]# virsh list --allId 名称 状态 --------------------------- CULinux-VM 关闭- ubuntu20.04 关闭- ubuntu24.04 关闭[roo…...

第4讲、Odoo 18 模块系统源码全解与架构深度剖析【modules】
引言 Odoo 是一款强大的开源企业资源规划(ERP)与客户关系管理(CRM)系统,其核心竞争力之一在于高度模块化的架构设计。模块系统不仅是 Odoo 框架的基石,更是实现功能灵活扩展与定制的关键。本文将结合 Odoo…...

pytorch简单线性回归模型
模型五步走 1、获取数据 1. 数据预处理 2.归一化 3.转换为张量 2、定义模型 3、定义损失函数和优化器 4、模型训练 5、模型评估和调优 调优方法 6、可视化(可选) 示例代码 import torch import torch.nn as nn import numpy as np import matplot…...
在 HTML 文件中添加图片的常用方法
本文详解HTML图片插入方法:1)通过<img>标签实现,必须含src和alt属性;2)路径支持绝对/相对引用;3)建议设置width/height保持比例;4)响应式方案用srcset适配不同设备…...

四、web安全-行业术语
1. 肉鸡 所谓“肉鸡”是一种很形象的比喻,比喻那些可以随意被我们控制的电脑,对方可以是WINDOWS系统,也可以是UNIX/LINUX系统,可以是普通的个人电脑,也可以是大型的服务器,我们可以象操作自己的电脑那样来…...
Kafka核心技术解析与最佳实践指南
Apache Kafka作为分布式流处理平台的核心组件,以其高吞吐、低延迟和可扩展性成为现代数据架构的基石。本文基于Kafka官方文档,深度解析其核心技术原理,并结合实践经验总结关键技巧与最佳实践。 Kafka的高性能源于其精巧的架构设计࿰…...

Unity基础学习(十二)Unity 物理系统之范围检测
目录 一、关于范围检测的主要API: 1. 盒状范围检测 Physics.OverlapBox 2. 球形范围检测 Physics.OverlapSphere 3. 胶囊范围检测 Physics.OverlapCapsule 4. 盒状检测 NonAlloc 版 5. 球形检测 NonAlloc 版 6. 胶囊检测 NonAlloc 版 二、关于API中的两个重…...

JVM 的垃圾回收机制 GC
C/C 这样的编程语言中,申请内存的时候,是需要用完了,进行手动释放的 C 申请内存 1)局部变量(不需要手动释放) 2)全局变量(不需要手动释放) 3)动态申请 malloc(通过 free 进行释放的) C 申请内存 1)局部变量 2)全局变量/静态变量 3)动态申请 new 通过 delete 进行释放 …...
TypeScript 针对 iOS 不支持 JIT 的优化策略总结
# **TypeScript 针对 iOS 不支持 JIT 的优化策略总结** 由于 iOS 的 **JavaScriptCore (JSC)** 引擎 **禁用 JIT(Just-In-Time 编译)**,JavaScript 在 iOS 上的执行性能较差,尤其是涉及动态代码时。 **TypeScript(T…...
00 QEMU源码中文注释与架构讲解
QEMU源码中文注释与架构讲解 先占坑:等后续完善后再更新此文章 注释作者将狼才鲸创建日期2025-05-30更新日期NULL CSDN阅读地址:00 QEMU源码中文注释与架构讲解Gitee源码仓库地址:才鲸嵌入式/qemu 一、前言 参考网址 QEMU 源码目录简介qe…...
ansible template 文件中如果包含{{}} 等非ansible 变量处理
在 Ansible 模板中,如果你的 Python 脚本里有大量 {}、f""、或者其他 Jinja 会误解析的语法,就需要用 {% raw %}…{% endraw %} 把它们包起来,只在需要替换变量的那一行单独“放行”。例如: {% raw %} #!/usr/bin/env …...
Screen 连接远程服务器(Ubuntu)
连接 1. 安装screen 默认预安装,可以通过命令查看: screen --version 若未安装: # Ubuntu/Debian sudo apt-get install screen 2. 本机连接远程服务器 ssh root192.168.x.x 在远程服务器中打开screen: screen -S <nam…...

路由器、网关和光猫三种设备有啥区别?
无论是家中Wi-Fi信号的覆盖,还是企业网络的高效运行,路由器、网关和光猫这些设备都扮演着不可或缺的角色。然而,对于大多数人来说,这三者的功能和区别却像一团迷雾,似懂非懂。你是否曾疑惑,为什么家里需要光…...