将文件添加到 Git 并跟踪更改
将文件添加到 Git
打开 提交 工具窗口(Alt+0 )。
按 Ctrl+Alt+A 或从上下文菜单中选择 添加到 VCS ,将 未受版本控制的文件 修改列表中的任何文件置于版本控制下。 您可以添加整个变更列表或选择单独的文件。

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

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

下表列出了在某些 color schemes中默认的行高亮颜色及其含义。
颜色 | 行状态 | 描述 |
|---|---|---|
| 已修改的行 | 自上次更新以来已修改的行。 |
| 空格修改的行 | 自上次更新以来仅修改了空格的行。 |
| 已添加行 | 自上次更新以来添加的行。 |
| 已删除的行 | 自上次更新以来已移除的行。 |
颜色 | 行状态 | 描述 |
|---|---|---|
| 已修改的行 | 自上次更新以来已修改的行。 |
| 空格修改的行 | 自上次更新以来仅修改了空格的行。 |
| 已添加行 | 自上次更新以来添加的行。 |
| 已删除的行 | 自上次更新以来已移除的行。 |
颜色 | 行状态 | 描述 |
|---|---|---|
| 已修改的行 | 自上次更新以来已修改的行。 |
| 空格修改的行 | 自上次更新以来仅修改了空格的行。 |
| 已添加行 | 自上次更新以来添加的行。 |
| 已删除的行 | 自上次更新以来已移除的行。 |
将鼠标悬停在更改标记上并点击它时,会出现一个工具栏,可使用该工具栏管理更改。 工具栏与显示被修改行先前内容的框架一起显示:

点击 可回滚更改,点击
可查看当前行与仓库版本之间的差异。
无需还原整个文件,可以从此弹出窗口复制任意部分的内容并将其粘贴到编辑器中。
检查文件状态
IntelliJ IDEA 允许您检查项目文件相对于仓库的状态。 文件状态显示自您上次与存储库同步以来对文件执行了哪些操作。
可以通过用于高亮显示文件名的颜色,在任何接口元素(例如编辑器或工具窗口)中查看文件的状态。
您可以在 Colors and Fonts设置页面自定义文件状态的默认颜色。
您可以在 版本控制 | 文件状态颜色 设置页面 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 或从上下文菜单中选择 删除。
在打开的对话框中,您可以选择是否想删除这个文件而不搜索用法,或者通过勾选 安全删除 选项执行 安全删除 (以确保您正在删除一个未使用的文件)。
如果找到任何用法, 检测到的用法 对话框将弹出并列出这些用法。 您可以查看这些用法并在删除此文件之前移除对它的引用。
将更改提交到仓库。