将文件添加到 Git 并跟踪更改
将文件添加到 Git
打开 提交 工具窗口 Alt+0。
按 Ctrl+Alt+A 或从上下文菜单中选择 添加到 VCS ,将 未版本控制的文件 修改列表中的任何文件置于版本控制下。 您可以添加整个变更列表或选择单独的文件。
如果您已为项目启用了 Git 集成,IntelliJ IDEA 会建议将每个新创建的文件添加到版本控制中。 您可以在 设置 对话框 Ctrl+Alt+S 中的 下更改此行为。 如果您希望某些文件始终保持未版本化,您可以配置 Git 忽略它们。
检查项目文件状态
IntelliJ IDEA 允许您检查本地工作副本与仓库中项目版本的状态。 它让您看到哪些文件被修改了,哪些新文件已被添加到 Git,以及哪些文件未被 Git 跟踪。
打开 提交 工具窗口 Alt+0。

更改 变更列表显示自您上次与远程仓库同步以来所有被修改的文件(用蓝色突出显示),以及所有已添加到 Git 但尚未提交的新文件(用绿色突出显示)。
未版本控制的文件 变更列表显示已添加到项目中的所有文件,但这些文件未被 Git 跟踪。
在编辑器中跟踪文件的更改
您还可以在编辑器中修改文件时跟踪更改。 所有更改都用 更改标记突出显示,这些标记会出现在修改行旁边的装订区域,并显示自您上次 与存储库同步以来引入的更改类型。 当您提交更改到存储库时,更改标记会消失。
您对文本所做的更改是用颜色编码的:

您可以使用工具栏来管理更改,该工具栏会在您将鼠标悬停在更改标记上并点击它时出现。 工具栏与显示被修改行先前内容的框架一起显示:

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