调查 Git 存储库中的更改
在 PyCharm 中,您可以追溯项目中的所有更改。 这有助于您 定位任何更改的作者 ,查看 文件版本 或提交之间的差异,并在必要时 安全地回滚并撤销 更改。
查看项目历史记录
您可以查看与指定筛选器匹配的项目源中所做的所有更改。 要查看项目历史记录,请打开 日志 选项卡(Git 工具窗口 Alt+9)。 其中显示提交到所有分支和远程存储库的所有更改:

在多存储库项目中,左侧的彩色条表示所选提交属于哪个根(每个根都用自己的颜色标记)。 将鼠标悬停在彩色条上以显示提示,其中显示根路径:

在项目历史记录中导航并搜索
通过输入完整的提交名称或消息或其片段、修订号或正则表达式,在提交列表中进行搜索。
按分支或 收藏的分支 、用户、日期和文件夹筛选提交(对于多根项目,则按根和文件夹筛选)。
点击工具栏上的 转到哈希/分支/标签
图标或按 Ctrl+F ,并指定要跳转到的提交哈希、 标签 或分支名称(将跳转到该分支的最新提交)。
点击箭头可在长分支中跳转到下一个提交:

按 Left 和 Right 键可跳转到父/子提交。 如果您在不同存储库和多个分支上都有提交,并且它们都混在 Git 工具窗口 Alt+9 的 日志 选项卡中时,这将特别有用。
有关 Git 工具窗口 Alt+9 的 日志 选项卡的详细信息,请参阅 日志选项卡。
查看项目在特定修订版本时的快照
PyCharm 允许您查看项目在所选修订版本中的状态。
打开 Git 工具窗口 Alt+9 ,并切换到 日志 选项卡。
选择一个提交,并在上下文菜单中选择 在修订处显示存储库。
存储库 工具窗口将打开,其中包含所选修订版本时项目的快照。
查看两个提交之间的差异
PyCharm 允许您检查两个提交之间哪些文件被修改,而无需浏览中间每个提交中的更改。
在 Git 工具窗口 Alt+9 的 日志 选项卡中选择任意两个提交,并在上下文菜单中选择 比较版本。
将打开 更改 工具窗口,其中列出了所选提交之间被修改的文件。 您可以通过点击
显示差异 或按 Ctrl+D 来查看任意文件的差异。
查看文件历史记录
您可以查看对特定文件所做的所有更改,并找出每个修订版本中的具体修改内容。
在任意视图中选择所需文件(项目 工具窗口 Alt+1 、编辑器、 提交 窗口等)。
从主菜单中选择 Git | 所选文件 | 显示历史记录 ,或在所选内容的上下文菜单中选择 Git | 显示历史记录。 历史记录 选项卡将添加到 Git 工具窗口中,显示所选文件的历史记录,并允许您查看和比较其修订版本。
要确定特定修订版本中引入了哪些更改,请在列表中选择该修订版本。 面板右侧会立即显示差异。
要在专用的 Diff 查看器中查看整个文件的差异,请在列表中选择它并按 Ctrl+D ,或点击工具栏上的
显示差异。 Diff 查看器 将打开,显示此修订版本中的更改。
您可以使用工具栏按钮将所选修订版本与本地版本进行比较、比较所选修订版本中的类、检出所选修订版本、注解所选修订版本等:
项目 | 工具提示和快捷键 | 说明 |
|---|---|---|
分支 | 分支筛选器 | 点击 分支 并选择一个分支,以查看在该分支内对文件所做的更改。 |
刷新 | 点击此按钮以刷新当前信息。 | |
显示差异 Ctrl+D | 点击此按钮,可在 Diff 查看器 中将文件所选修订版本与其上一修订版本进行比较。 | |
显示所有受影响的文件 Alt+Shift+A | 点击此按钮以打开 修订中受影响的路径 对话框,在其中可以查看所选修订版本中被修改的所有文件。 | |
查看选项 | 点击以选择您希望在 历史记录 视图中看到的信息量。 如果希望 PyCharm 显示提交时间戳而不是更改的作者时间,您还可以选择 显示提交时间戳 选项。 此外,选择您希望查看的信息类型:
| |
在 GitHub 上打开 | 点击此按钮以在 GitHub 上打开与所选提交对应的页面。 | |
在 GitLab 上打开 | 点击此按钮以在 GitLab 上打开与所选提交对应的页面。 | |
启用 Git 日志索引 | 点击此按钮可改进在整个 IDE 中处理更改历史。 为项目存储库建立索引可以:
要禁用此选项,请转到 。 | |
| 重命名列 | 点击此列以展开它,并查看该文件的重命名历史记录。 将鼠标悬停在该列上即可查看文件路径的更改。 |
查看所选内容的历史记录
在编辑器中,选择所需的源代码片段,或将插入符号置于相应的行上。
从主菜单中选择 Git | 当前文件 | 显示所选内容的历史记录 ,或在所选内容的上下文菜单中选择 Git | 显示所选内容的历史记录。
所选片段的历史记录将会在单独的窗口中打开。 如果未选择任何内容,将显示当前行的历史记录。
查看目录的历史记录
除了查看整个项目或特定文件的历史记录之外,您还可以检查在特定文件夹中所做的更改。
在 项目 工具窗口 Alt+1 中选择一个或多个目录,并在上下文菜单中选择 。
将在 Git 工具窗口 Alt+9 中添加一个新选项卡,显示按所选文件夹筛选的提交。
查看本地版本与已提交的文件版本之间的差异
您可以检查已提交的文件修订与其本地版本之间的不同之处:
打开 Git 工具窗口 Alt+9 ,并切换到 日志 选项卡。
选择您感兴趣的提交,并在右侧窗格中选择该文件。
点击工具栏上的
按钮。
查看更改是如何合并的
PyCharm 允许您查看更改是如何 从一个分支合并到另一个分支的,以及在合并过程中(如有)如何 解决冲突:
在 Git 工具窗口 Alt+9 的 日志 选项卡中,选择您感兴趣的合并提交。
定位代码作者(使用 Git Blame 进行注解)
您可以使用 VCS 注解 (对应 git-blame )来确定是谁向文件引入了哪些更改。 注解视图会显示每一行代码的详细信息:

当前修订版本中被修改的行的注解会以粗体和星号标记。
默认情况下,不同的提交会以不同的颜色高亮显示(请参阅 配置注解中显示的信息量)。
在注解视图中,您可以跳转到:
在 Git 工具窗口 Alt+9 的 日志 选项卡中的相应提交:点击注解或将鼠标悬停其上,然后在包含详细信息的弹出窗口中点击提交哈希。

行差异:将鼠标悬停在注解上。 IDE 将高亮显示该行以及来自相应提交的更改。

在 https://github.com 上的相应提交:使用 在 GitHub 上打开 上下文菜单选项。
如果启用了 问题导航 ,则可以在您的问题跟踪系统中打开相关问题:将鼠标悬停在注解上,如果提交消息中包含问题链接,则点击该链接。
启用注解
配置注解中显示的信息量
您可以选择在注解视图中查看的信息量。
右键点击注解装订区域,选择 视图 ,并选择您希望查看的信息类型,包括此更改的起始修订版本、日期、作者姓名的不同格式以及提交编号。
您还可以在 颜色 下设置高亮显示。
配置注解选项
右键点击注解装订区域,并从上下文菜单中选择 选项:
忽略空白字符 :将忽略空白字符(git
blame -w)。 这意味着注解将指向上一个有意义的提交。检测文件内的移动 :当一个提交在同一文件内移动或复制行时,将忽略此类更改(git
blame -M)。 这意味着注解将指向上一个有意义的提交。检测跨文件的移动 :当一个提交从同一提交中修改过的其他文件移动或复制行时,将忽略此类更改(git
blame -C)。 这意味着注解将指向上一个有意义的提交。显示提交时间戳 :如果希望 PyCharm 在 注解 视图中显示提交时间戳,而不是更改的作者时间,请选择此选项。
自定义日期格式
按 Ctrl+Alt+S 打开设置,然后选择 。
点击位于 VCS 注解 旁边的 日期时间模式 字段,并指定您希望用于 VCS 注解的日期格式。 请参阅 模式参考。
在编辑器中显示更改的作者
您可以配置编辑器,在 内嵌提示 中显示元素(方法或类)最后一次更改的作者。 要启用它们:
按 Ctrl+Alt+S 打开设置,然后选择 。
选择 代码作者 选项。
选择作者姓名的显示位置:
行顶部(默认)

右侧

启用此选项后,您可以在编辑器中点击作者姓名提示以打开注解视图。
隐藏更改的作者
要在编辑器中隐藏代码作者姓名,请执行以下任一操作:
打开 编辑器 | 内联提示 | 代码视野 设置页面  Ctrl+Alt+S ,并禁用 代码作者 选项。
在编辑器中右键点击作者姓名提示,然后选择 隐藏 `Code Vision: Code author` 内联提示。

注解先前的修订
PyCharm 允许您不仅注解当前文件修订,还可注解其先前的修订。 注解装订区域的上下文菜单提供以下选项:
注解修订 :如果您想查看在提交某项特定更改之后文件的状态,此选项很有用。 为此,请右键点击此更改,并从上下文菜单中选择 注解修订。
注解上一个修订 :当某一行的最后一次更改没有意义时(例如仅更改了代码格式),此选项很有用。 在这种情况下,您可以查看该文件的上一修订版本的状态。 为此,请右键点击某个更改,并从上下文菜单中选择 注解上一个修订。
隐藏修订 :此选项有助于避免看到不相关或管理性质的更改。 这类更改通常由底层迁移或格式化操作引入。 当这些更改影响整个根时,会使 注解 对话框变得杂乱,因此最好将这些更改同时从视图以及 ‘annotate’ 列中排除。 隐藏修订 操作允许您就地将某个修订从注解结果中排除,并在编辑器和装订区域中显示结果。 可通过相反的操作 恢复已隐藏的修订 恢复被排除的修订。 有关隐藏修订的信息会显示在编辑器顶部的通知面板中。 您还可以点击通知面板中的相应链接来恢复隐藏的修订。
您还可以在 历史记录 视图中注解特定文件。 在 历史记录 选项卡中,选择您要查看的文件版本,右键点击相应的行,并从上下文菜单中选择 注解。
观看此视频,了解如何更好地利用注解:
