将文件添加到 Git 并跟踪更改
将文件添加到 Git
打开 提交 工具窗口 Alt+0。
通过按 Ctrl+Alt+A 或在上下文菜单中选择 添加到 VCS ,将 未纳入版本控制的文件 更改列表中的任意文件纳入版本控制。 您可以添加整个更改列表,或选择单个文件。
如果您已为项目启用 Git 集成,PyCharm 会建议将每个新建文件纳入版本控制。 您可以在 设置 对话框 Ctrl+Alt+S 的 下更改此行为。 如果您希望某些文件始终保持未受版本控制状态,您可以配置 Git 忽略它们。
检查项目文件状态
PyCharm 允许您检查本地工作副本相对于项目存储库版本的状态。 它使您能够查看哪些文件已修改、哪些新文件已添加到 Git,以及哪些文件未由 Git 跟踪。
打开 提交 工具窗口 Alt+0。

更改 更改列表显示自您上次与远程存储库同步以来已修改的所有文件(以蓝色高亮显示),以及已添加到 Git 但尚未提交的所有新文件(以绿色高亮显示)。
未纳入版本控制的文件 更改列表显示所有已添加到项目中但未由 Git 跟踪的文件。
您可以直接在 版本控制 工具窗口的 本地更改 选项卡中执行部署任务,例如 上传文件和文件夹 或 将其与已部署版本进行比较。 为此,右键点击某个项,然后在上下文菜单中选择 部署。 然后在子菜单中选择所需的操作。
在编辑器中跟踪文件的更改
您还可以在编辑器中修改文件时跟踪其更改。 所有更改都会使用 更改标记 高亮显示,该标记显示在已修改行旁边的装订区域中,并指示自上次 与存储库同步 以来引入的更改类型。 当您将更改提交到存储库时,更改标记会消失。
您对文本所做的更改会使用颜色标识:

下表列出了部分 配色方案 中默认的行高亮颜色及其含义。
颜色 | 行状态 | 说明 |
|---|---|---|
| 已修改的行 | 自上次更新以来已修改的行。 |
| 空白字符已修改的行 | 自上次更新以来仅修改了空白字符的行。 |
| 已添加的行 | 自上次更新以来已添加的行。 |
| 已删除的行 | 自上次更新以来已删除的行。 |
颜色 | 行状态 | 说明 |
|---|---|---|
| 已修改的行 | 自上次更新以来已修改的行。 |
| 空白字符已修改的行 | 自上次更新以来仅修改了空白字符的行。 |
| 已添加的行 | 自上次更新以来已添加的行。 |
| 已删除的行 | 自上次更新以来已删除的行。 |
颜色 | 行状态 | 说明 |
|---|---|---|
| 已修改的行 | 自上次更新以来已修改的行。 |
| 空白字符已修改的行 | 自上次更新以来仅修改了空白字符的行。 |
| 已添加的行 | 自上次更新以来已添加的行。 |
| 已删除的行 | 自上次更新以来已删除的行。 |
当您将鼠标悬停在更改标记上并点击时,会显示一个工具栏,您可以使用它来管理更改。 该工具栏与一个显示已修改行先前内容的框一起显示:

您可以点击 回滚更改,并通过点击
查看当前行的当前版本与存储库版本之间的差异。
您无需回滚整个文件,您可以复制此弹出窗口中的任意部分内容并将其粘贴到编辑器中。
检查文件状态
PyCharm 允许您检查项目文件相对于存储库的状态。 文件状态显示自您上次与存储库同步以来对该文件执行了哪些操作。
您可以通过用于高亮显示文件名的颜色,在任何界面元素(例如编辑器或工具窗口)中检查文件的状态。
您可以在 颜色和字体 设置页面上自定义文件状态的默认颜色。
您可以在 版本控制 | 文件状态颜色 设置页面  Ctrl+Alt+S 上配置 VCS 文件状态颜色。
下表列出了部分 配色方案 中默认的文件状态颜色及其含义。
颜色 | 文件状态 | 说明 |
|---|---|---|
| 已添加 | 活动 更改列表 中的文件已计划添加到存储库。 |
| 在非活动更改列表中已添加 | 非活动更改列表中的文件已计划添加到存储库。 此文件状态在 中启用 高亮显示非活动变更列表中的文件 选项时可用。 |
| 更改列表冲突 | 非活动更改列表中的文件已在活动更改列表中被修改。 在这种情况下,将打开一个新对话框,提示您解决 更改列表冲突。 此文件状态在 中启用所有选项时可用。 |
| 已复制 | 如果某个文件是另一个文件的副本,其元数据将被跟踪,并将该文件标记为 已复制。 |
| 已删除 | 该文件已计划从存储库中删除。 |
| 已从文件系统删除 | 该文件已在本地删除,但尚未计划删除,且仍存在于存储库中。 |
| 具有已更改的后代 | 如果某个文件被修改,IDE 将递归高亮显示包含该文件的所有目录。 此状态在 中启用 在项目树中高亮显示包含已修改文件的目录 选项时可用。 |
| 具有直接已更改的子项 | 如果某个文件被修改,IDE 将高亮显示其父目录。 此状态在 中启用 在项目树中高亮显示包含已修改文件的目录 选项时可用。 |
| 已劫持 | [Perforce、ClearCase、VSS] 该文件为 未经签出即修改。 |
| 已忽略 | 该文件由 VCS 有意不跟踪。 |
| 已合并 | 该文件在更新后由您的 VCS 合并。 |
| 合并存在冲突 | 在上次更新期间,该文件合并时发生冲突。 |
| 合并存在属性冲突 | 在上次更新期间,IDE 检测到本地文件与其服务器版本的属性存在差异。 |
| 合并存在文本和属性冲突 | 当两个或更多开发者修改同一文件的相同行以及相同的文件属性时,会发生文本和属性冲突。 |
| 已修改 | 自上次同步以来,该文件已更改。 |
| 在非活动更改列表中已修改 | 非活动更改列表中的文件已被修改。 此文件状态在 中启用 高亮显示非活动变更列表中的文件 选项时可用。 |
| 已过时 | 该文件不应再出现在您存储库的工作副本中。 |
| 已重命名 | 自上次更新以来,该文件已被重命名。 |
| 已切换 | [SVN] 该文件来自与整个项目不同的分支。 |
| (未知)未受版本控制 | 该文件在本地存在,但不在存储库中,也未计划添加。 |
| 最新 | 该文件未被更改。 |
颜色 | 文件状态 | 说明 |
|---|---|---|
| 已添加 | 活动 更改列表 中的文件已计划添加到存储库。 |
| 在非活动更改列表中已添加 | 非活动更改列表中的文件已计划添加到存储库。 此文件状态在 中启用 高亮显示非活动变更列表中的文件 选项时可用。 |
| 更改列表冲突 | 非活动更改列表中的文件已在活动更改列表中被修改。 在这种情况下,将打开一个新对话框,提示您解决 更改列表冲突。 此文件状态在 中启用所有选项时可用。 |
| 已复制 | 如果某个文件是另一个文件的副本,其元数据将被跟踪,并将该文件标记为 已复制。 |
| 已删除 | 该文件已计划从存储库中删除。 |
| 已从文件系统删除 | 该文件已在本地删除,但尚未计划删除,且仍存在于存储库中。 |
| 具有已更改的后代 | 如果某个文件被修改,IDE 将递归高亮显示包含该文件的所有目录。 此状态在 中启用 在项目树中高亮显示包含已修改文件的目录 选项时可用。 |
| 具有直接已更改的子项 | 如果某个文件被修改,IDE 将高亮显示其父目录。 此状态在 中启用 在项目树中高亮显示包含已修改文件的目录 选项时可用。 |
| 已劫持 | [Perforce、ClearCase、VSS] 该文件为 未经签出即修改。 |
| 已忽略 | 该文件由 VCS 有意不跟踪。 |
| 已合并 | 该文件在更新后由您的 VCS 合并。 |
| 合并存在冲突 | 在上次更新期间,该文件合并时发生冲突。 |
| 合并存在属性冲突 | 在上次更新期间,IDE 检测到本地文件与其服务器版本的属性存在差异。 |
| 合并存在文本和属性冲突 | 当两个或更多开发者修改同一文件的相同行以及相同的文件属性时,会发生文本和属性冲突。 |
| 已修改 | 自上次同步以来,该文件已更改。 |
| 在非活动更改列表中已修改 | 非活动更改列表中的文件已被修改。 此文件状态在 中启用 高亮显示非活动变更列表中的文件 选项时可用。 |
| 已过时 | 该文件不应再出现在您存储库的工作副本中。 |
| 已重命名 | 自上次更新以来,该文件已被重命名。 |
| 已切换 | [SVN] 该文件来自与整个项目不同的分支。 |
| (未知)未受版本控制 | 该文件在本地存在,但不在存储库中,也未计划添加。 |
| 最新 | 该文件未被更改。 |
颜色 | 文件状态 | 说明 |
|---|---|---|
| 已添加 | 活动 更改列表 中的文件已计划添加到存储库。 |
| 在非活动更改列表中已添加 | 非活动更改列表中的文件已计划添加到存储库。 此文件状态在 中启用 高亮显示非活动变更列表中的文件 选项时可用。 |
| 更改列表冲突 | 非活动更改列表中的文件已在活动更改列表中被修改。 在这种情况下,将打开一个新对话框,提示您解决 更改列表冲突。 此文件状态在 中启用所有选项时可用。 |
| 已复制 | 如果某个文件是另一个文件的副本,其元数据将被跟踪,并将该文件标记为 已复制。 |
| 已删除 | 该文件已计划从存储库中删除。 |
| 已从文件系统删除 | 该文件已在本地删除,但尚未计划删除,且仍存在于存储库中。 |
| 具有已更改的后代 | 如果某个文件被修改,IDE 将递归高亮显示包含该文件的所有目录。 此状态在 中启用 在项目树中高亮显示包含已修改文件的目录 选项时可用。 |
| 具有直接已更改的子项 | 如果某个文件被修改,IDE 将高亮显示其父目录。 此状态在 中启用 在项目树中高亮显示包含已修改文件的目录 选项时可用。 |
| 已劫持 | [Perforce、ClearCase、VSS] 该文件为 未经签出即修改。 |
| 已忽略 | 该文件由 VCS 有意不跟踪。 |
| 已合并 | 该文件在更新后由您的 VCS 合并。 |
| 合并存在冲突 | 在上次更新期间,该文件合并时发生冲突。 |
| 合并存在属性冲突 | 在上次更新期间,IDE 检测到本地文件与其服务器版本的属性存在差异。 |
| 合并存在文本和属性冲突 | 当两个或更多开发者修改同一文件的相同行以及相同的文件属性时,会发生文本和属性冲突。 |
| 已修改 | 自上次同步以来,该文件已更改。 |
| 在非活动更改列表中已修改 | 非活动更改列表中的文件已被修改。 此文件状态在 中启用 高亮显示非活动变更列表中的文件 选项时可用。 |
| 已过时 | 该文件不应再出现在您存储库的工作副本中。 |
| 已重命名 | 自上次更新以来,该文件已被重命名。 |
| 已切换 | [SVN] 该文件来自与整个项目不同的分支。 |
| (未知)未受版本控制 | 该文件在本地存在,但不在存储库中,也未计划添加。 |
| 最新 | 该文件未被更改。 |
从存储库中删除文件
如果您删除了受版本控制的文件,在您提交更改之前,它仍会存在于存储库中。 已删除的文件会放入活动更改列表,并以灰色高亮显示。
在 项目 工具窗口 Alt+1 中选择一个文件,然后按 Delete ,或在上下文菜单中选择 删除。
在打开的对话框中,您可以选择是否在不搜索用法的情况下删除此文件,或者通过选中 安全删除 选项执行 安全删除 (以确保您删除的是未使用的文件)。
如果找到了任何用法,将弹出 检测到用法 对话框,列出它们。 您可以查看这些用法,并在删除该文件之前移除对其的引用。
将更改提交到存储库。