%% # 纲要 > 主干纲要、Hint/线索/路标 # Q&A #### 已明确 #### 待明确 > 当下仍存有的疑惑 **❓<font color="#c0504d"> 有什么问题?</font>** # Buffer ## 闪念 > sudden idea ## 候选资料 > Read it later %% # VSCode 配置 Git 相关插件 插件总览: ![[05-工具/VSCode/VSCode 通用插件说明及配置#Git 相关|VSCode 通用插件说明及配置]] ### 个人需求&使用总结 ![[#体验总结]] <br><br><br> # Git Graph 插件 ✔️ 功能:提供了**对 Git 仓库完整提交历史的==可视化窗口页面==**,支持**点击执行相关操作**。 插件在下列两处添加了"**按钮**",点击可**打开插件提供的 "Git Grpah" 页面**。 - **SOURCE CONTROL 面板中** - **底部状态栏** ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-A685FE181E6EB500AC94CA7A531B3F34.png|576]] ### Git Graph 页面 ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-814EC313BFFF99A0A5F32F47700D84AB.png|515]] ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-FEF4E1D0AD8DC70E824DED5FBDAB99E6.png|839]] <br><br><br> # GitLens 插件 ✔️ ## 体验总结 - Gitlens 提供的 **Line Blame 功能**可完全替代另一独立插件 Git Blame。 - Gitlens 提供的 **Graph 功能** 为 Pro 付费功能,因此这一需求上**仍需要使用==独立的 Git graph 插件==**。 - Gitlens 提供的下列功能**可实现 =="工作区与不同提交版本间"、"两个不同提交之间" 的文件内容比较==**: - **Revision Navigation 功能**——比较当前文件的 "**工作区** "与 "**当前分支上历史提交 or 指定分支 or 特定 tag**" 差异 - INSPECT 视窗中: - **FILE HISTORY 栏**——比较当前文件的 "**工作区** "与 "**当前分支上历史提交"的差异 - **SEARCH & COMPARE 栏**——比较**任意两个 `<branch,tag,ref,working tree>` 之间的差异** > [!summary] 对我而言,**核心需求是 "Revisoin Navigation" 以及 "Inspect" 窗口下两栏的功能**。 > > 涉及的相关命令如下: > > ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-C0FFFAF02FFE4721AD9E44F4F9B66D96.png|784]] ![[05-工具/VSCode/VSCode 配置 Git 相关插件#^g5e0gr]] #### 关于 "File history" 功能说明 VSCode 、GitLens、Git History、Git History Diff 插件都**提供了类似的功能**。 综合比较后明确,**Gitlens 提供的功能可完全覆盖其他插件的**,且**更加便于使用**。 对比说明: - Gitlens 在 **INSPECT 窗口**中提供的 **"==FILE HISTORY==" 栏** 可以 **==完全覆盖== VSCode 内置 "TIME LINE" 栏的功能** ⭐⭐ - VSCode 在 **Explor 窗口**中内置提供的 **"TIMELINE" 栏**,可以查看**涉及该文件的修改提交历史**; - 缺点:显示了**提交消息、作者、时间**,但是 **==未显示提交的哈希 ID==**。 - 功能:支持**对比任意两项历史提交**,但似乎不支持 "**任一历史提交**" 与 "**当前工作区**" 之间的对比。 参见[^1] ## 功能说明 >参见 [GitHub vscode-gitlens](https://github.com/gitkraken/vscode-gitlens?tab=readme-ov-file#worktrees-pro) 插件功能总结: - **提供一系列视窗**: - **Sidebar** : - **增强 SOURCE CONTROL 面板** ——引入更多子栏目如 COMMITS,BRANCHS 等 - **独立的 Gitlen 面板** - **独立的 Gitlen Inspect 面板**——Inspect 栏、Line History 栏、File History 栏等; - **底部面板**——用于 Graph 显示等 - **Git Blame 功能**(**Line Blame**) - **Inline Blame Annotatsions**——**当前行尾**显示**该行代码**的**最近提交信息** - **Status Bar Blame**——底部状态栏显示相同的 blame 信息 - **Hovers**——提供**悬浮窗**,鼠标悬停在上述 blame 信息处时将**浮窗显示详细信息** - **Git CodeLens** 功能 - 在**文件顶部**和**每个代码块的开头**显示**最近提交的作者信息** - 支持点击查看更多信息 - **File Annotations** 功能——**编辑页右上角按钮**,点击触发显示下列信息 - **File Blame**——编辑页左侧显示**该文件的提交历史信息** - **File Changes**——编辑页内显示**当前文件的变更** - **Revision Navigation** 功能 ——**编辑页右上角按钮**,点击**显示 diff view 视窗** - **默认比较 "工作区" 与 "暂存区或 HEAD"** - 按住`<Alt>` 后点击,**可选择与任意一个历史提交进行对比**(`<A-LClick>`) - **交互式 Rebase 功能** - **其他 Pro 功能**(收费) ### 插件提供的侧边栏&底部视窗 一个四处,如下图所示: ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-183E3105E390BE59A1F46958E561C1DB.png|812]] #### SOURCE CONTROL 面板增强 额外提供了 COMMITS、BRANCHES 等栏目,如下图所示: ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-6AD97AD43D796A3A232615D7F064CB5C.png|512]] ##### COMMITS 栏 支持操作:**Revert、Rest、Rebase 、基于该 commit 创建分支等等**。 ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-7368EB18AA2195C5A90B91F0D9FBCC57.png|434]] ##### BRANCHES 栏 支持操作:**切换到该分支**、**推送分支**、**与多个比较** - **push 该分支** ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-DF4C32BCB2F78259A3279F3E53D483B2.png|627]] - **与 HAED 或 Working Tree 比较**(比较结果显示在 Inspect 视窗下,如上图) ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-81098C48A3A53D2CD021A7B74BB3A6A9.png|638]] - **与其他分支比较**(比较结果显示在 Inspect 视窗下,如上图) ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-4E2994CEDC6D0C20D0C3D5E07831E0E2.png|653]] #### GITLENS 面板 其中罗列了 **Gitlens 插件的所有功能的入口项**。 ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-C8A2F79CFEDBAEB045AC746BAE671D7D.png|326]] #### INSPECT 面板 功能说明见下图左框。主要显示几方面:**commit 的详细信息**、**当前所在行的提交历史**、**当前文件的提交历史**。 ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-9E9DD643BFD70B872AE9F46542F836B4.png|513]] ##### FILE HISTORY 栏 ⭐⭐ - **比较同一文件的不同历史版本**(注:只能看到过去历史提交的,**不能看到其他分叉分支上的**) ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-DE453D0395F728C94511E1568AD9864A.png|1050]] ##### SEARCH & COMPARE 栏 ⭐ ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-B86A91A9B0555AC04D2CB30FA3CBE251.png|762]] > [!NOTE] 支持直接将 **特定提交** 中的内容转移到 "**当前工作区**": > > ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-2249EDDE2BCA7385B9E7C14627DC2517.png|706]] > > ^g5e0gr ### Git Blame 功能 - **在行尾显示该行代码的变更信息**:作者名、相对时间戳、commit 信息 ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-B9C6867FC5B21689CBC75CEA81750889.png|637]] - **悬停时浮窗显示修改者信息**: ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-3D0954E853FF2F82C8FCBE6439E49D9F.png|435]] - **状态栏右下角同样显示上述信息** ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-17546730980C8D97E61BDE84A6A0BA0C.png|387]] ### File Annotations 功能 - 右上角按钮支持显示三项内容: ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-28CECA03B555540AB9A0EDDCD2F00BF1.png|234]] - Filt Blame:编辑页左侧显示**该文件的提交历史信息** ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-3BE67F28FD2079613AEE0FB6DF1B9804.png|569]] ### Revision Navigation 功能 ⭐ - 右上角按钮,点击弹出 diff view,**比较 "工作区"与"暂存区或 HEAD"** 差异 ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-B111E23BA875E3E4470EBB2A173799BA.png|290]] ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-09273B79F617C2DA5B92868EEBCE315A.png|661]] - 按住`<Alt>` 后点击,**可选择与任意一个历史提交进行对比** ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-F31FE50200CE384F0BA348271B903611.png|419]] ### Git Codelens 功能 在**文件顶部**和**每个代码块的开头**显示**最近提交的作者信息 ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-9C567F3DBDFF152FFE8A2ED0C3FDD0F7.png|998]] ### 交互式 Rebase 功能 ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-0238D828E152460BC41B016AB559A165.png|475]] ### Pro 功能(付费) ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-D7BAE7AC76986CF2C4B2C395C7234F69.png|352]] <br><br> # Git History(❌) 该插件提供了以下页面,可供**查看分支历史、文件历史**,**比较不同提交&不同分支**,**比较同一文件的不同版本**。 ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-7A7C314FC9C3E4A45CA33288CBBCE397.png|712]] ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-C95987CC7E5165F03DD90AA1A547EABD.png|729]] ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-9BC03E772402249A36687EE8953E5E67.png|728]] > ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-2223367DC595F6FAB125776AB16F74D1.png|743]] <br><br><br> # Git History Diff(❌) > [Site Unreachable](https://marketplace.visualstudio.com/items?itemName=huizhou.githd) 该插件是**以一个独立页面**显示**提交历史**(分支的提交历史,涉及特定文件变更的提交历史等等) ![[_attachment/05-工具/VSCode/VSCode 配置 Git 相关插件.assets/IMG-VSCode 配置 Git 相关插件-595117384DC19B53D0779D9025619EB4.png|655]] <br><br> # 参考资料 # Footnotes [^1]: [VSCode 或许不需要 GitLensGit-Lens 中个人所需要的功能非常少,部分实用性功能还需要收费,个人场景下 - 掘金](https://juejin.cn/post/7316097536547700775)