git - VS 代码 : explore commits in chronological order

标签 git visual-studio-code

我正在寻找在某个提交时浏览存储库的功能(查看此次提交时存储库中的所有文件,包括以前提交的文件),而不仅仅是添加、更改或删除的文件通过这次提交。
例如:

  • 提交 67c2a4b : 添加 .gitignore 自述文件 ;
  • 提交 10f91d2 : 重命名 自述文件 自述文件 ;
  • 提交 47a5777 : 添加 许可证 .

  • 我想查看 10f91d2 时存储库的状态(第二个)提交:我应该看到 .gitignore(先前提交所做的更改)并重命名 Readme.md(当前提交) - 像以前一样探索存储库 47a5777 (第三次提交)。
    我试图为 VS Code 找到这样一个工具,并遇到了 GitLens 扩展的“从修订版浏览存储库”功能。但是这种方法对我来说似乎有些奇怪。如果 VS Code 没有这样的工具,那么请推荐一个第三方工具(最好有 C#、JS 和 TS 语法高亮)。提前致谢。
    GitLens 的“从修订版浏览存储库”功能:
  • 安装 GitLens延期;
  • 打开 GitLens 侧面板并在“存储库”部分展开首选分支;
  • 右键单击首选提交并选择“从修订版浏览存储库”(在资源管理器侧面板中,您可以看到名为“REPOSITORY_NAME @ SHORT_COMMIT_ID”的新文件夹)。
  • 最佳答案

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

    关于git - VS 代码 : explore commits in chronological order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63074837/

    相关文章:

    多个 0.5GB 二进制文件的 GIT Rebase Fatal

    混帐/gitorious : Way to share certain branches/repositories with the customer

    windows - 在 Windows Git Bash (MinGW) 中为 Visual Studio Code 添加快捷方式

    sas - VS Code 新文件的默认语言

    git - 如何 'undo' 一个 git 提交,同时保留所有其他的

    git - 无法使用 visual studio 2013 pull git 中的更改?

    javascript - 将 prettier 作为 NPM 包安装和在 VS Code 中安装 prettier 扩展有什么区别

    c - C 调试功能中的 Visual Studio Code Hello World 不起作用 Programm NullReferenceException :

    VSCode 上的 Git 和 Git : samba shared folder issue

    eclipse - Eclipse构建路径丢失