cat*_*745 7 git visual-studio-code
我正在寻找在某个提交时浏览存储库的功能(查看此次提交时存储库中的所有文件,包括以前提交的文件),而不仅仅是添加、更改或删除的文件通过这次提交。
例如:
67c2a4b:添加.gitignore和Readme;10f91d2:将自述文件重命名为Readme.md;47a5777:添加许可证。我想在10f91d2(第二次)提交时查看存储库的状态:我应该看到.gitignore(先前提交所做的更改)并重命名Readme.md(当前提交) - 像以前一样探索存储库47a5777(第三犯罪)。
我试图为 VS Code 找到这样一个工具,并遇到了 GitLens 扩展的“从修订版浏览存储库”功能。但是这种方法对我来说似乎有些奇怪。如果 VS Code 没有这样的工具,那么请推荐一个第三方工具(最好有 C#、JS 和 TS 语法高亮)。提前致谢。
GitLens 的“从修订版浏览存储库”功能:



注意:根据对问题的编辑/更新,下面的 3 个主要解决方案中的每一个都允许直观地选择历史记录中的特定提交,能够查看哪些文件有更改(差异视图)并能够在差异中查看这些文件查看该提交。屏幕截图显示了选定的特定提交和文件列表,还发布了一些差异视图示例
正如您所提到的,GitLens 很好,而且功能非常齐全。它有一个侧边栏窗口,可让您搜索存储库中的所有提交、每个提交中的每个文件、查看特定文件的历史记录甚至文件中的一行。它将拉出您想要查看的文件的差异(提交到前一个文件),甚至在代码中最后一次显示内联以及更改该行的人(“责备”信息)。
下面,在“提前 13 次提交”下是实际提交的嵌套列表。历史中的第二个提交被选中,并且在它下面未嵌套的是提交中的所有文件夹和文件。选择文件时(Blog.tsx在本例中),下面的文件历史和行历史部分映射到该特定文件。
然而——你在 Git 中所做的任何事情都是如此——挖掘所有可能的功能需要一段时间,你需要了解 Git 的底层基础才能充分利用它。
例如,只需单击提交历史记录中的文件,就会显示该文件与先前提交的差异。例子:
GitLens 将让您在远程(例如 Github 等)上打开提交,将文件与历史上任何一点的当前 Git“头”进行比较,或者更改比较提交,然后与任何其他提交进行比较。
但是,我发现界面有点难以理解。它没有提供分支和提交的良好视觉布局,这会使您很难浏览并知道您在看什么。所以有一点学习曲线,如果 repo 有任何复杂性,你需要能够在你的脑海中想象所有分支是什么。
也就是说,GitLens 非常精致。
Git Graph 是一个很棒的 VS Code 扩展,它似乎是顶级扩展的一个新兴选择。它似乎没有 GitLens 的所有功能(无论如何),但它有很多,关键功能是一个单独的编辑器窗口,它可以直观地绘制出提交的历史记录,允许您单击任何提交查看元数据,如作者、提交消息等,还查看在该提交中更改的所有文件的列表,提供您可以对它们执行的各种功能(打开、cherrypick 进入工作目录、打开差异等.)
当然,一种选择是在 Git Graph 和 GitLens 之间切换以完成您需要的一切。
在选择 master 上的最新提交下方,您可以看到“粉红色”分支已合并master到此提交中。右侧是发生更改的文件列表(具有差异的文件),可以单击以在单独的窗口中打开差异视图以及其他功能。
请注意,Git Graph 当前(2020 年 7 月)没有用于打开它的侧边栏或右键单击选项。您需要转到“视图”->“命令面板”(或 Windows 中的 ctrl-shift-p)并键入“> Git Graph”以查看可能的命令。选择Git Graph: View Git Graph (git log)打开主窗口。
我知道你在 VS Code 中要求了一些东西,但我会放弃另一种选择,这是我大部分时间的备用选项。它是一个独立的开源程序Git Extensions。不幸的是,在最新的 v3.x 中,它仅适用于 Windows,但如果您主要使用 Windows,它是一个出色的可视化 Git GUI,可让您处理 99% 所需的所有 git 功能。
它在许多方面结合了 GitLens 和 Git Graph 的所有最佳功能,允许您比较来自任何两次提交的文件,拉出一个单独的窗口,其中包含特定文件的历史记录(仅显示该文件更改的提交) ,从任何提交中提取任何文件到工作目录等。
下面您会看到与其他工具中的示例相同的 repo,并选择了 master 后面的提交。左下角的“差异”选项卡被选中,它显示自上次提交以来更改的文件。您可以右键单击并访问给定文件的各种辅助功能(例如将其拉入工作目录、查看文件历史记录或在 VS Code 等外部差异工具中打开)。选中后(App.tsx下图),右下角会显示文件与先前提交的差异视图。
注意:您可以将 VS Code 设置为您的底层 Git 差异和合并工具,然后如果您使用外部差异工具从 Git 扩展中打开文件(在差异的右键单击上下文菜单上,或在合并期间,它将打开它们在 VS Code 中)。
最后,您可以学习 git 命令行并以这种方式执行所有操作。有一个很大的学习曲线和大量的记忆和查找深奥的标志等,但如果你致力于它并定期使用它,它将成为第二天性。
此外,如果您需要使用 Git 编写脚本/自动化任何内容,您将需要底层命令。现在,也就是说,对于大多数 GUI 工具,有一种方法可以查看它们正在使用哪些命令(Git Extensions 打开一个终端并向您显示命令和响应,您可以决定是否在成功或成功时自动关闭它)例如,保持打开状态)。
说了这么多,都是命令行。您需要将大部分输出完全可视化并将其转换为您的存储库的心智模型。陡峭的学习曲线并且不是很用户友好,特别是对于临时的 git 用户。
命令行的一个优点是它可以在任何可能使用 Git 的地方使用。它也可以直接在你的 VS Code 终端中很好地工作,你甚至可以在 Windows 上使用 Git Bash 作为你的 VS Code 终端。
一个简单的、与 vscode 或扩展无关的原生 git 解决方案,只需使用内置的gui即可;或gitk
如果gitk您有传统的提交限制参数,您可以应用如下:
--in-commit-order
--date-order
--author-date-order
--topo-order
您可以使用 : 指定选定的提交--select-commit:
命令行调用示例:
gitk --select-commit=826e7b73e1857fc91f88eafdd2f82a4d3bee2116
将生成历史 gui,它展示您的所有要求,例如差异、树视图、文件是否使用添加模式或删除模式,并带有箭头按钮在提交之前或之后导航,并选择您指定的提交:

或者,如果您只想查看具有特定修订起点的历史记录,您可以使用典型的git-rev 范围:
gitk 826e7b7
通过右键单击,您可以选择“将分支重置到此处”、挑选、恢复等;您可以右键单击非活动提交以获取差异选项。不过,您可以随时访问 git gui。
您甚至可以使用菜单栏View: New View并选择“记住此视图”来保存视图以供将来参考:
| 归档时间: |
|
| 查看次数: |
2071 次 |
| 最近记录: |