在本页面:VCS Operations Popup(Alt+` 或 VCS | VCS Operations Popup)可快速调用任何与VCS相关的命令。弹出窗口中的操作列表取决于当前启用的VCS。
IntelliJ IDEA支持两个级别的版本控制集成:
在IDE级别,通过默认启用的一组捆绑插件提供VCS集成。
在项目级别,通过将项目文件夹与一个或多个版本控制系统相关联来启用VCS集成。
IntelliJ IDEA允许您快速启用项目与版本控制系统的集成,并将其与项目根关联。有关如何将单独的项目目录与不同版本控制系统关联的说明,请参阅将目录与版本控制系统关联。
选择VCS | 启用版本控制集成在主菜单上,或按Alt+`,然后选择启用版本控制集成...。
在打开的“启用版本控制集成”对话框中,从下拉列表中选择要与项目根关联的版本控制系统。
IntelliJ IDEA支持基于目录的版本控制模型,这意味着每个项目目录都可以与不同的版本控制系统相关联。
打开版本控制设置(文件|设置|版本控制)。此页面显示与其关联的项目目录和版本控制系统的列表(如果未添加任何目录,则列表仅包含项目根目录)。
单击右侧的“ 添加”按钮。
在打开的“ 添加VCS目录映射”对话框中,选择“ 目录” 选项。键入要与版本控制系统关联的目录的路径,或单击“ 浏览”按钮并在打开的对话框中选择目录 。
从VCS下拉列表中,选择将用于控制此目录中文件的版本控制系统。请注意,此列表仅包含当前启用相应插件的版本控制系统。
(可选)单击“ 配置VCS”按钮,该按钮允许您指定所选版本控制系统的设置。版本控制设置节点下也提供相同的设置 。
单击“ 确定”保存映射并返回“ 版本控制”页面。
对于启用了Git或Mercurial集成的项目,IntelliJ IDEA会扫描项目目录以检查是否存在不受IDE控制的Git / Mercurial存储库。如果检测到此类存储库,IntelliJ IDEA将显示通知。
要添加未注册的根,请单击通知中的“ 添加根”链接。或者,打开“ 版本控制”设置页面,选择要添加的未注册根(它们标记为灰色),然后按照将目录与版本控制系统关联的过程进行操作。
如果您不希望再次收到有关这些根的通知,请单击通知中的“ 忽略”链接。请注意,如果将新的未注册存储库添加到项目中,IntelliJ IDEA将通知您有关它们的信息。
打开“ 版本控制”设置页面。此设置页面显示具有关联版本控制系统的目录表。
在表中,找到与要放在另一个版本控制系统下的目录对应的行。
单击VCS列。从显示的下拉列表中,选择一个新的版本控制系统。
单击“ 确定”以保存新映射并关闭“ 版本控制”对话框。
常规版本控制设置适用于与IntelliJ IDEA集成的所有版本控制系统。常规设置在“设置”对话框的“ 版本控制”页面上 指定,包括定义需要确认的操作,后台操作,忽略的文件,问题导航和历史深度。
在“ 设置/首选项” 对话框(Ctrl+Alt+S)中,单击“ 版本控制”。“ 版本控制”页面打开。
指定哪些版本控制相关操作需要确认。
指定应在后台执行哪些操作。
创建版本控制系统要忽略的文件列表。
配置历史缓存处理。
定义问题导航规则以从签入注释切换到错误跟踪系统中的相应问题。
您可以定义只有在您方确认后才能执行某些与版本控制相关的活动。需要确认的活动在“ 确认设置”页面中指定 。
在“ 设置/首选项” 对话框(Ctrl+Alt+S)中的“ 版本控制”节点下,选择“ 确认”页面。
在添加到版本控制之前显示选项
静默添加
不要添加
查看
状态
获取最新版本
更新
撤消签出
指定文件的只读状态是否应该要求显式取消。
指定是否需要有关将文件提交到存储库的有意义的注释。
指定是否应将未提交的更改移动到另一个更改列表。
如果提交操作失败,请指定是否以及如何创建更改列表。
您可以启用某些版本控制相关活动的后台执行。这些活动在后台设置页面中指定 。
在“ 设置/首选项” 对话框(Ctrl+Alt+S)下的“ 版本控制”节点下,选择“ 背景”页面。
查看
编辑/结帐
还原
历史缓存处理
检测“服务器上已更改”冲突
有时您可能需要保留某些类型的文件无版本。这些可以是VCS管理文件,实用工具,备份副本等。您可以创建一个全局忽略列表,该列表将存储在工作区文件中并应用于所有受支持的版本控制系统。
您要忽略的文件可以通过带通配符的通名模式名称明确指定。要忽略目录,您需要指定相对于项目根目录的完整路径。
使用“ 忽略的文件”设置页面列出必须从版本控制操作中排除的文件。
请注意,一旦将文件添加到版本控制系统,忽略它将无效。您需要先从VCS中删除它。
在“ 设置/首选项” 对话框(Ctrl+Alt+S)中的“ 版本控制”节点下,单击“ 忽略的文件”。
在“ 版本控制” 工具窗口的“ 本地更改”选项卡中 ,单击工具栏上的“ 配置忽略的文件”。
单击(Alt+Insert)以创建新条目,或选择现有条目并单击(Enter)。将打开“ 忽略无版本文件”对话框:
选择“ 忽略指定的文件”选项并指定相对于项目根目录的文件名,例如my_folder / my_subfolder1 / my_subfolder2 / my_file。手动键入名称或单击“ 浏览” ,然后在“ 选择要忽略的文件”对话框中选择所需的文件。
该规则以递归方式应用于指定目录的所有子目录。如果某个目录有多个子目录,并且您只想忽略其中一个子目录,请明确指定所需的目录,例如my_folder/my_subfolder1/my_subfolder2/
。
定义要忽略的文件的模式使用两个通配符。
根据需要创建任意数量的条目并关闭对话框。
在“ 设置/首选项” 对话框(Ctrl+Alt+S)中的“ 版本控制”节点下,选择“ 背景”页面。
指定要存储在缓存中的最大更改列表数。
指定更改列表存储在缓存中的最大天数。
指定您希望版本控制系统刷新缓存的频率(以分钟为单位)。
某些设置适用于分配给整个项目或其目录的版本控制系统。其他与所选版本控制系统有关。使用“ 设置”对话框的“ VCS”节点下的相应VCS页面 定义VCS特定的设置。
在“ 设置/首选项” 对话框(Ctrl+Alt+S)中,单击“ 版本控制”,然后单击VCS的页面。
根据需要设置选项。有关详细信息,请参阅版本控制设置的 VCS特定页面。
打开“ 版本控制”工具窗口(Alt+9)并切换到“ 本地更改”选项卡。
通过按或从上下文菜单中选择“ 添加到VCS”, 将任何文件放在版本控制下的Unversioned Files更改列表中。您可以添加整个更改列表,也可以选择单独的文件。 Ctrl+Alt+A
如果已为项目启用了VCS集成,IntelliJ IDEA建议在版本控制下添加每个新创建的文件(您可以在“ 版本控制”|“确认”Ctrl+Alt+S下的“设置/首选项”对话框()中更改此行为。如果您希望某些文件始终保持无版本,则可以将VCS配置为忽略它们。
IntelliJ IDEA允许您检查本地工作副本与项目的存储库版本相比的状态。它可以让您查看哪些文件已被修改,哪些新文件已添加到VCS,哪些文件未被Git跟踪。
打开“ 版本控制”工具窗口(Alt+9)并切换到“ 本地更改”选项卡:
在默认变更表显示已被修改自上次与远程存储库(蓝色高亮显示)同步所有文件,并已添加到VCS,但尚未提交,但(绿色高亮显示)所有新文件。
该版本的文件,更改列表显示,已添加到项目中的所有文件,但不被Git的跟踪。
您还可以在编辑器中修改文件时跟踪文件的更改。所有更改都会突出显示更改标记 ,这些更改标记显示在修改后的行旁边的左侧装订线中,并显示自上次与存储库同步以来引入的更改类型 。当您对存储库提交更改时,更改标记将消失。
您在文本中引入的更改采用颜色编码:
添加了一行。
线路改变了。
删除行时,左侧装订线中会显示以下标记: 。
您可以使用将鼠标光标悬停在更改标记上然后单击它时显示的工具栏来管理更改。工具栏与显示修改行的先前内容的框架一起显示:
您可以通过单击来回滚更改 (请注意,自上次修订以来对文件的所有更改都将被还原,而不仅仅是当前行),并通过单击来探索当前行的当前版本和存储库版本之间的差异 。
如果删除受版本控制的文件,则在提交更改之前,该文件仍存在于存储库中。已删除的文件将放置到活动的更改列表中,并以灰色突出显示。
在“ 项目”工具窗口中选择一个文件,然后按Delete,或从上下文菜单中选择“ 删除 ”。
在打开的对话框中,您可以选择是否要在不搜索用法的情况下删除此文件,或者执行 安全删除 以确保通过选中“ 安全删除”选项删除未使用的文件 。
如果找到任何用法,将弹出列出它们的Usages Detected对话框。您可以在删除之前查看这些用法并删除对此文件的引用。
将更改提交到存储库。
IntelliJ IDEA允许您检查文件的两个修订版之间或其当前本地副本与存储库版本之间的差异。差异显示在差异查看器中。有关如何在差异查看器中过滤,导航和应用更改的详细信息,请参阅 比较文件,文件夹和文本源。
在“ 版本控制”工具窗口的“ 本地更改”选项卡中选择一个文件,然后单击工具栏上的,或按。 Ctrl+D
在“ 项目”工具窗口中选择一个文件,然后选择
从打开的对话框中选择要与当前文件版本进行比较的修订版本。
在“ 项目”工具窗口中选择一个文件,然后选择
从打开的对话框中选择要与当前文件版本进行比较的分支。
根据您的版本控制系统,可能会在不同情况下发生冲突。
当您在团队中工作时,您可能会遇到某人提交您当前正在处理的文件的更改的情况。如果这些更改不重叠(即,对不同的代码行进行了更改),则会自动合并冲突的文件。但是,如果相同的行受到影响,则您的版本控制系统不能随意选择一侧而是另一侧,并要求您解决冲突。
合并,变基或挑选分支机构时也可能出现冲突。
当您尝试编辑服务器上具有较新版本的文件时,IntelliJ IDEA会通知您,在编辑器中显示一条消息弹出窗口:
在这种情况下,您应该在更改文件之前更新本地版本,或者稍后合并更改。
如果您尝试提交具有较新存储库版本的文件,则提交失败,并在右下角显示错误,告知您尝试提交的文件已过期。
如果将已具有本地更改的文件与其他人提交的较新存储库版本同步,则会发生冲突。冲突文件获得Merged with conflict状态。该文件保留在“ 版本控制”工具窗口的“ 本地更改”选项卡 中的相同更改列表中,但其名称以红色突出显示。如果文件当前在编辑器中打开,则选项卡标题上的文件名也会以红色突出显示。
在分布式版本控制系统(如Git和Mercurial)下,当您在本地提交的文件更改为与最新上游版本相同的代码行并且您尝试执行以下操作之一时,会出现冲突:pull, merge, rebase, cherry-pick, unstash或apply patch。
如果存在冲突,这些操作将失败,系统将提示您接受上游版本,更喜欢您的版本或手动合并更改:
IntelliJ IDEA提供了一种在本地解决冲突的工具。该工具由三个窗格组成。左窗格显示只读本地副本; 右侧窗格显示签入存储库的只读版本。中央窗格显示了一个功能齐全的编辑器,其中显示了合并和冲突解决的结果。最初,此窗格的内容 与文件的基本修订版本相同,即从中派生两个冲突版本的修订版本。
单击“ 冲突”对话框中的“ 合并 ” ,或在编辑器中选择冲突文件,然后选择“ VCS”
要自动合并所有不冲突的更改,请单击工具栏上的 (应用所有非冲突更改)。您还可以使用 (从左侧应用非冲突更改)和 (从右侧应用非冲突更改)分别合并对话框左/右部分的非冲突更改。
要解决冲突,您需要选择要应用(接受或忽略 )左侧(本地)和右侧(存储库)版本的操作,并在中央窗格中检查生成的代码:
您还可以右键单击中央窗格中的冲突,然后使用上下文中的命令。在使用左解析和解析使用权的命令来接受从一侧变化和分别从对方忽略它们提供一个快捷方式:
对于简单冲突(例如,如果在不同的文件修订版中修改了同一行的开头和结尾),则可以使用Resolve simple conflicts 选项,该 选项允许在一次单击中合并更改:
“ 应用所有非冲突更改”操作无法解决此类冲突,因为您必须确保它们已正确解析。
比较不同版本以解决冲突也可能很有用。使用 工具栏按钮调用选项列表。请注意,Base指的是本地和存储库版本源自的文件版本(最初显示在中间窗格中),而Middle指的是生成的版本。
在中央窗格中查看合并结果,然后单击“ 应用”。
自动应用非冲突的更改
您可以将IntelliJ IDEA配置为始终自动应用非冲突更改,而不是通过“ 合并”对话框告知它执行此操作。为此,请在“ 设置/首选项” 对话框(Ctrl+Alt+S)中,转到“ 工具”| 在左侧进行差异合并,然后选择自动应用非冲突更改选项。
管理中央窗格中的更改
您可以使用将鼠标光标悬停在装订线中的更改标记上时显示的工具栏管理中央窗格中的更改,然后单击它。工具栏与显示修改行的先前内容的框架一起显示:
例如,当存在多个非冲突的更改,并且您只需要跳过其中的一个或两个时,使用“ 应用所有非冲突更改”操作同时应用所有这些更容易,然后使用从此工具栏还原操作。
使用IntelliJ IDEA,您可以将提交消息与错误跟踪器或问题数据库连接,并从VCS日志中的提交导航到与这些提交相关的问题。
在Settings / Preferences 对话框(Ctrl+Alt+S)中,选择Version Control | 问题左侧导航。
如果您使用的是JIRA 或YouTrack,请单击 工具栏上的添加JIRA模式 或添加YouTrack模式 ,然后键入错误跟踪系统安装的URL。
IntelliJ IDEA将自动添加定义导航模式的正则表达式。
用于在提交消息中定义问题模式 的正则表达式。
该替换式定义URL来访问相应的引用问题。
问题ID模式 |
正则表达式,用于定义在提交消息中引用问题的格式。
此正则表达式匹配由两个以n-dash字符分隔的子字符串组成的所有字符串:
|
问题链接模式 |
问题跟踪系统的URL地址和标识其中问题的正则表达式的组合。
这里$0 表示对整个比赛的反向引用。这意味着只要IntelliJ IDEA在提交消息中检测到匹配,就会将其添加到跟踪器的URL地址中。
|
匹配问题ID |
IntelliJ IDEA在感兴趣的提交消息中检测以下对问题的引用:
|
组成问题链接 |
根据上述问题导航模式,检测到的匹配参考按原样添加到跟踪器的URL,因此引用问题的链接组成如下:
|
使用IntelliJ IDEA,您可以将提交消息与错误跟踪器或问题数据库连接,并从VCS日志中的提交导航到与这些提交相关的问题。changelist是一组尚未提交到VCS存储库的本地更改。
对项目文件所做的所有更改都会自动放入活动更改列表中(通常,它是 默认更改列表,但您可以将任何其他更改列表作为活动更改列表)。
在“ 版本控制”工具窗口的“ 本地更改”选项卡中,单击 并选择“ 新建更改列表”。
在“新建更改列表”对话框中,指定新更改列表的名称和可选描述。
在“ 版本控制”工具窗口的“ 本地更改”选项卡中选择更改列表,然后从上下文菜单中选择“ 设置活动更改列表” 。所有修改过的文件都将自动放入此更改列表中。
在“ 版本控制”工具窗口的“ 本地更改”选项卡中,选择要移动到另一个更改列表的文件。
从上下文菜单中或在工具栏上 选择“ 移动到另一个更改列表”。
在打开的对话框中,选择现有的更改列表或输入新更改列表的名称。
您可以选择将此更改列表设置为活动列表,并跟踪它的上下文(IntelliJ IDEA将保存与此更改列表关联的上下文,并在此更改列表变为活动时恢复它)。
搁置暂时存储您尚未提交的挂起更改。这很有用,例如,如果您需要切换到另一个任务,并且您希望将更改设置为稍后处理它们。
使用IntelliJ IDEA,您可以搁置单独的文件和整个更改列表。
搁置后,可根据需要多次更改。
打开“ 版本控制”工具窗口(Alt+9)并切换到“ 本地更改”选项卡。
右键单击要放入工具架的文件或更改列表,然后 从上下文菜单中选择“ 搁置更改 ”。
在“ 搁置更改”对话框中,查看已修改文件的列表。
在“ 提交消息”字段中,输入要创建的货架的名称,然后单击“货架 更改”按钮。
您还可以静默搁置更改,而不显示“ 搁置更改”对话框。要执行此操作,请选择要搁置的文件或更改列表,然后单击 工具栏上的“ 搁置静音”图标,或按Ctrl+Alt+H。包含要搁置的更改的更改列表的名称将用作货架名称。
为了避免使用相同名称的多个货架(例如Default),您可以将文件或更改列表从Local Changes选项卡拖到Shelf选项卡,等待一秒直到它被激活,然后编辑新货架释放鼠标按钮时即时命名。
令人不安的是将推迟的更改从一个架子转移到一个待定的更改列表。可以从视图中过滤掉未删除的更改或从工具架中删除。
在货架的标签的版本控制工具窗口中,选择要取消搁置一个变更或文件。
按Ctrl+Shift+U或从选择的上下文菜单中选择取消搁置。
在打开的“ 取消保护更改”对话框中,在“ 名称”字段中指定要将未经保留的更改还原到的更改列表。您可以从列表中选择现有的更改列表,也可以键入要创建的包含未更改的更改的新更改列表的名称。您可以在“ 注释”字段中输入新更改列表的说明(可选)。
如果要激活新的更改列表,请选择“ 设置活动”选项。否则,当前活动的更改列表仍保持活动状态。
如果希望IntelliJ IDEA 在其停用时保留与新更改列表关联的任务的上下文,并在更改列表变为活动状态时还原上下文,请选择“ 跟踪上下文”选项(有关详细信息,请参阅任务和上下文)。
如果要删除要撤消的更改,请选择“ 从架子中删除已成功应用的文件”选项。未加载的文件将从此工具架中删除,并添加到另一个更改列表并标记为已应用。在通过单击工具栏或从上下文菜单中选择Clean Already Unshelved明确删除之前,不会完全删除它们。
如果您意外删除了未受控制的文件,则可以从“ 最近删除”节点查看和还原它们。
单击确定。如果修补版本与当前版本之间发生冲突,请按照解决冲突中的说明解决它们 。
您可以静默取消更改,而不显示“ 取消保护更改”对话框。要做到这一点,选择文件或要取消搁置一个变更,并单击取消搁置默默的图标 工具栏,或按上 Ctrl+Alt+U。未被控制的文件将被移动到活动的待定更改列表。
您还可以拖动从一个文件或者一个变更货架标签的本地更改标签默默取消搁置了。如果按住该Ctrl键拖动它,它将被复制到“ 本地更改”选项卡,而不是从工具架中删除。
IntelliJ IDEA允许您在必要时重新应用未经保留的更改。所有未取消的更改都可以重复使用,直到通过单击工具栏上的图标或从上下文菜单中选择“ 清除已经取消保留”来明确删除它们。
确保已 启用“ 显示已取消已保留”工具栏选项。
选择要还原的文件或书架。
从选择的上下文菜单中,选择“还原”。
您可以导入在IntelliJ IDEA内部或外部创建的补丁,并将其作为搁置更改应用。
在货架的标签的版本控制工具窗口中,选择导入修补从上下文菜单中。
在打开的对话框中,选择要应用的修补程序文件。选定的修补程序将作为工具架显示在“工具 架”选项卡中。
使用修补程序选择新添加的工具架,然后 从选择的上下文菜单中选择“ 取消保护更改 ”。
将IntelliJ IDEA配置为始终搁置Git版本控制下的文件的基本修订版可能很有用。
在“ 设置/首选项” 对话框(Ctrl+Alt+S)中,选择“ 版本控制” 架子。
在分布式版本控制系统选项下 选择文件的Shelve基本修订版。
如果启用此选项,则文件的基本修订将保存到将在3向合并期间 使用的工具架(如果应用工具架导致冲突)。如果禁用,IntelliJ IDEA将在项目历史记录中查找基本修订版,这可能需要一段时间; 此外,冲突架所基于的修订可能会丢失(例如,如果由于rebase操作而更改了历史记录)。
默认情况下,shelf目录位于项目目录下。但是,您可能需要更改默认的货架位置。这可能很有用,例如,如果您想要在清理工作副本时避免意外删除货架,或者您希望将它们存储在单独的存储库中,以便在您的团队成员之间共享货架。
打开“ 设置” 对话框(Ctrl+Alt+S)并选择“ 版本控制” 左侧的架子节点。
单击“ 更改货架位置”按钮,然后在打开的对话框中指定新位置。
如有必要,请选择“ 将搁架移动到新位置”选项以将现有搁架移动到新目录。
该 更新命令可以将本地文件的内容与存储库同步。您可以在以下位置调用此命令:
单个或多个文件和目录
整个项目
根据更新选项,更新过程可能会以静默方式进行。如果所有文件都是最新的,您将收到有关该文件的通知。否则,“ 更新信息”选项卡将在“ 版本控制”工具窗口中打开 ,您可以根据需要对信息进行分组。
在任何导航视图中选择要更新的一个或多个文件和文件夹(例如,在“ 项目工具”窗口中)。
执行以下操作之一:
选择
选择 VCS |
在“ 更新”对话框中,指定更新选项,这些选项与支持的版本控制系统不同,然后单击“ 确定”。
执行以下操作之一:
按 Ctrl+T。
点击 上 的导航栏。
“ 更新”对话框将打开。
如果项目的某些部分映射到不同的VCS系统,请单击应更新的VCS映射的选项卡。
指定更新选项,这些选项与支持的版本控制系统不同,然后单击“ 确定”。
该 更新命令可以将本地文件的内容与存储库同步。您可以在以下位置调用此命令:
要基于未提交的更改创建修补程序,请执行以下操作:
打开“ 版本控制”工具窗口(Alt+9)并切换到“ 本地更改”选项卡。
选择要根据其创建修补程序的文件或更改列表。
从上下文菜单或主VCS菜单中 选择“ 创建补丁”。
在打开的对话框中,确保选中要包含在修补程序中的所有更改,输入提交注释(可选)并单击“ 创建修补程序”。
在“ 修补程序文件设置”对话框中,根据需要修改默认修补程序文件位置,然后单击“ 确定”。
如果您不需要将补丁保存到文件中,并希望(例如)通过电子邮件或通过信使发送补丁,则可以从所选文件或更改列表的上下文菜单中选择“ 复制为补丁到剪贴板”,然后将其粘贴到邮件正文中。
您还可以根据已提交的更改创建修补程序。要从整个提交创建补丁,请在“ 日志”视图中找到它,然后从上下文菜单中选择“ 创建补丁 ”。如果需要在单个文件上创建补丁,并且相应的提交包含多个文件,请执行以下操作:
在任何视图中选择所需文件(在“ 项目”工具窗口中,在编辑器中,在“ 版本控制”工具窗口的“ 本地更改”选项卡中,选择一个子项)。
选择Git | 从主VCS菜单或选择的上下文菜单中显示历史记录。“ 历史记录”选项卡将添加到“ 版本控制”工具窗口。
右键单击修订并从上下文菜单中选择“ 创建修补程序 ”,或单击工具栏上的“ 创建修补程序”图标。
要将存储在文件中的更改应用于源,请执行以下操作:
选择VCS | 从主菜单应用补丁。
在打开的“ 应用修补程序”对话框中,指定要应用的.patch文件的路径。
如有必要,请单击“ 映射基目录”图标以指定相对于将解释补丁文件中的文件名的目录。您可以将基目录映射到单个文件,目录或选择。
如果在创建补丁后编辑了源代码,则可能会发生冲突。要检查是否可以在没有冲突的情况下应用修补程序,请单击“ 显示差异”图标或按Ctrl+D。如果存在冲突,相应的行将以红色突出显示。
如果要对修补程序中指定的文件中存储的文件应用更改,可以使用“ 条带目录”按钮去除前导目录。
选择要从列表中添加修补程序的现有更改列表,或在“ 名称”字段中指定新更改列表的名称,并可选择在此更改列表中输入注释。
如果要激活此更改列表,请选择“ 设置活动”选项。
如果希望IntelliJ IDEA在其停用时保留与新更改列表关联的任务的上下文,并在更改列表变为活动状态时还原上下文,请选择“ 跟踪上下文”选项(有关详细信息,请参阅管理任务和上下文)。
您还可以复制补丁文件内容并通过选择VCS |来应用它 从主菜单中应用剪贴板中的Patch。例如,当您通过电子邮件收到修补程序并且不想保存它时,这很方便。对于 Git格式补丁,IntelliJ IDEA提取提交消息和作者,并自动填写“ 提交更改”对话框中的相应字段。
本主题说明如何跟踪您和您的团队成员对源代码所引入的更改。
IntelliJ IDEA允许您查看对与指定过滤器匹配的项目源所做的所有更改。
对于分布式版本控制系统,例如Git和Mercurial,您可以在“ 版本控制”工具窗口的“ 日志”选项卡中查看项目历史 记录(请参阅调查更改。
对于集中式版本控制系统,例如Subversion,Perforce和ClearCase,项目历史记录可在“ 版本控制”工具窗口的“ 存储库”选项卡中找到。
当您修改受版本控制的文件时,所有更改都会在编辑器中突出显示,其中的 更改标记出现在修改后的行旁边的左侧装订线中,并显示自上次与存储库同步以来引入的更改类型。将修改后的文件提交到存储库时,更改标记将消失。
您在文本中引入的更改采用颜色编码:
添加了一行。
线路改变了。
您可以自定义线路状态的默认颜色。为此,请打开“ 设置” 对话框(Ctrl+Alt+S)并选择“ 编辑器”| 配色方案| VCS在左边。
删除行时,左侧装订线中会显示以下标记: 。
您可以使用专用工具栏管理更改。要调用它,将鼠标光标悬停在更改标记上,然后单击它。工具栏与显示修改行的先前内容的框架一起显示:
通过工具栏中的操作,您可以导航到下一个或上一个更改,回滚更改,查看当前版本和存储库版本之间的差异,将修改后的行的先前版本复制到剪贴板,或打开突出显示代码中的差异。
如果要关闭突出显示更改,请在“ 设置/首选项” 对话框(Ctrl+Alt+S)中选择“ 编辑器”| 一般在左侧,并取消选中 在装订线选项中突出显示已修改的线条。
除了导航通过在编辑器文件中的本地更改,您可以查看这些变化相对于文件的基础版本。
您可以通过以下方式之一查看更改:
在“ 本地更改”视图中预览更改:选择文件,然后单击工具栏上的“ 预览差异” 按钮。
探索差异查看器中的更改:选择一个文件,然后按 Ctrl+D或单击工具栏上的。
左侧窗格显示受影响的代码,因为它在基本修订版中,右侧页面显示更改后的受影响代码。
使用工具栏按钮和控件在更改之间导航并配置“ 更改详细信息” 窗格或差异查看器的外观:
项目 |
工具提示和快捷方式 |
描述 |
---|---|---|
/ |
以前的差异/下一个差异 Shift+F7 F7 |
使用这些按钮跳转到下一个/上一个差异。 当达到最后/第一个差异时,IntelliJ IDEA建议再次单击箭头按钮 F7/ Shift+F7并比较其他文件,具体取决于在差异查看器设置中到达上次更改选项 后转到下一个文件。 仅当从“ 版本控制”工具窗口调用“ 差异查看器”时,才支持此行为。 |
|
跳转到源 |
单击此按钮可在编辑器的活动窗格中打开所选文件。插入符号将与差异查看器中的位置相同。 |
|
比较上一个/下一个文件 |
单击这些按钮可将上一个/下一个文件的本地副本与服务器上的更新进行比较。 只有在本地修改了多个文件时,这些控件才可用。 |
|
转到更改的文件 Ctrl+N |
单击此按钮可显示当前更改集中的所有已更改文件(并导航到它们)。仅当您查看多个文件中的更改时(例如,在VCS日志的“ 本地更改”视图中),才会显示此按钮 。 |
查看者类型 |
使用此列表选择查看器类型。并排的观察者有两个面板; 统一查看器只有一个面板。 两种类型的查看器都可以使您
|
|
空白 |
使用此列表可以定义差异查看器应如何处理空格。
|
|
突出显示模式 |
选择突出显示差异粒度的方式。 可用选项包括:
|
|
|
折叠未更改的片段 |
单击此按钮可折叠两个文件中所有未更改的片段。不可折叠的未更改行的数量可在“差异和合并设置”页面中进行配置。 |
|
同步滚动 |
单击此按钮可同时滚动两个差异窗格; 如果释放此按钮,则可以单独滚动每个窗格。 |
|
设置 |
单击此按钮可调用可用设置列表。选择或清除这些选项以显示或隐藏空格,行号和缩进指南,使用或禁用软包装,以及设置突出显示级别。 这些命令也可以从差异查看器装订线的上下文菜单中获得。 |
|
在外部工具中显示差异 |
单击此按钮可调用外部差异工具 设置页面中指定的外部差异查看器 。 在“ 外部差异工具”设置页面中启用“ 使用外部差异工具”选项时,此按钮仅显示在工具栏上。 |
|
救命 |
单击此按钮可显示相应的帮助页面。 |
N / A |
注释 |
此选项仅在装订线的上下文菜单中可用。 使用此选项可以探索谁介绍了文件存储库版本的更改以及何时更改。通过注释视图,您可以查看每行代码的详细信息,例如此行所源自的版本,提交此行的用户的ID以及提交日期。 有关注释的更多详细信息,请参阅使用注释 |
最有用的快捷方式如下:
捷径 |
描述 |
---|---|
Ctrl+Shift+D | 使用此键盘快捷键显示最常用的diff命令的弹出菜单。 |
Ctrl+Tab |
使用此键盘快捷键在左窗格和右窗格之间切换。 |
Ctrl+Shift+Tab |
使用此键盘快捷键选择Ctrl+Tab 在相对窗格中获取的位置。 |
Ctrl+Z/Ctrl+Shift+Z |
使用此键盘快捷键撤消/重做合并操作。冲突将与文本保持同步。 |
IntelliJ IDEA允许您查看对文件甚至源代码片段所做的更改。可以从主VCS菜单和文件的上下文菜单中获取“ 显示历史记录” 和“ 选择的显示历史记录”命令。
文件的更改历史记录显示在“ 版本控制”工具窗口的专用“ 历史记录”选项卡中 。
选择代码的更改历史记录以差异查看器的形式显示在单独的窗口中。
在编辑器中打开文件或在“ 项目”工具窗口中选择,然后选择
所选文件的 “ 历史记录”选项卡显示在“ 版本控制”工具窗口中,该文件的名称显示在选项卡的标题栏上。
您可以使用工具栏按钮将所选修订与本地版本进行比较,比较所选修订中的类,从VCS中签出所选修订,注释所选修订,等等:
项目 |
工具提示和快捷方式 |
描述 |
---|---|---|
刷新 |
单击此按钮可刷新当前信息。 |
|
|
显示差异 |
单击此按钮可将文件的选定版本与差异查看器中的先前版本进行比较 。 |
|
显示所有受影响的文件 |
单击此按钮可打开“修订中受影响的路径”对话框,您可以在其中查看在所选修订中修改的所有文件。 |
|
显示所有分支 |
单击此按钮可显示当前分支以外的分支的更改。 |
|
显示详细资料 |
单击此按钮可显示所选修订的提交消息。 |
|
在GitHub中打开 |
单击此按钮可打开与GitHub上所选提交对应的页面 。 |
在编辑器中,选择源代码的片段,或将光标放在要跟踪其历史记录的行上。
选择
所选片段的历史记录将在单独的窗口中打开。如果未选择任何内容,则将显示当前行的历史记录。
IntelliJ IDEA允许您检查项目文件相对于存储库的状态。文件状态显示自您上次与存储库同步以来对文件执行了哪些操作。
您可以通过用于突出显示文件名的颜色来检查任何界面元素(例如,编辑器或各种工具窗口)中文件的状态。
颜色 |
档案状态 |
描述 |
---|---|---|
#0A7700 |
添加 |
活动更改列表中的文件计划添加到存储库。 |
#0EAA00 |
添加在非活动的更改列表中 |
计划将非活动更改列表中的文件添加到存储库。如果在“设置/首选项”中启用了“ 从非活动更改列表中突出显示文件”选项,则 此文件状态可用 版本控制| 变更清单。 |
#FF0000 |
变更清单冲突 |
已激活的更改列表中的文件已在活动更改列表中进行了修改。在这种情况下,将打开一个新对话框,提示您解决更改列表冲突。如果在“设置/首选项”中启用了所有选项,则此文件状态可用版本控制| 变更清单。 |
#0A7700 |
复制 |
如果文件是另一个文件的副本,则会跟踪其元数据,并将此类文件标记为已复制。 |
#616161 |
删除 |
计划从存储库中删除该文件。 |
#773895 |
从文件系统中删除 |
该文件已在本地删除,但尚未安排删除,并且仍存在于存储库中。 |
#8AA4C8 |
改变了后代 |
如果修改了文件,IDE将以递归方式突出显示包含该文件的所有目录。如果 在“设置/首选项”中启用了“ 显示具有已更改后代的目录”选项,则此状态可用 版本控制。 |
#3264B4 |
立刻改变了孩子 |
如果修改了文件,IDE将突出显示其父目录。如果 在“设置/首选项”中启用了“ 显示具有已更改后代的目录”选项,则此状态可用 版本控制。 |
#B28C00 |
劫持 |
[Perforce,ClearCase,VSS]文件未经结帐即被 修改。 |
#727238 |
忽视 |
VCS故意不跟踪文件。 |
#7503DC |
合并的 |
作为更新的结果,文件由VCS合并。 |
#FF0000 |
与冲突合并 |
在上次更新期间,该文件已与冲突合并。 |
#FF0000 |
与财产冲突合并 |
在上次更新期间,IDE检测到本地文件的属性与其服务器版本之间的差异。 |
#FF0000 |
与文本和属性冲突合并 |
当两个或多个开发人员修改文件的相同行和相同的文件属性时,会发生文本和属性冲突。 |
#0032A0 |
改性 |
自上次同步后文件已更改。 |
#0047E4 |
在非活动变更列表中修改 |
已更改非活动更改列表中的文件。如果在“设置/首选项”中启用了“ 从非活动更改列表中突出显示文件”选项,则 此文件状态可用 版本控制| 变更清单。 |
#7C7C00 |
过时的 |
该文件不应再位于存储库的工作副本中。 |
#007C7C |
改名 |
自上次更新以来,该文件已重命名。 |
#08978F |
交换的 |
[SVN]该文件来自与整个项目不同的分支。 |
#993300 |
(未知)无版本 |
该文件存在于本地,但不在存储库中,并且未计划添加。 |
无(默认颜色) |
最新 |
该文件尚未更改。 |
注释是一种文件呈现形式,显示每行代码的详细信息。特别是,对于每一行,您可以看到此行所源自的版本,提交此行的人员的用户ID以及提交日期。带注释的视图可帮助您找出谁做了什么以及何时做,并追溯更改。
注释代码行可用于ClearCase,Mercurial,Git,Perforce和Subversion。
该注释命令可从版本控制菜单的具体VCS节点,在编辑器的上下文菜单左侧排水沟,文件上下文菜单,和文件历史记录视图。
启用注释后,左侧装订线看起来类似于以下示例:
在编辑器或差异查看器中右键单击左侧装订线,然后从上下文菜单中选择“ 注释 ”。
您可以为Annotate命令指定自定义快捷方式:在Settings / Preferences 对话框中(Ctrl+Alt+S)选择左侧的Keymap并转到 Version Control | Git | 注释。
IntelliJ IDEA不仅可以注释当前文件修订版,还可以注释它以前的修订版。注释装订线的上下文菜单中提供了以下选项:
注释修订:如果要在提交特定更改后检查文件的外观,此选项很有用。为此,请右键单击此更改,然后从上下文菜单中选择“ 注释修订 ”。
注释先前版本:如果您发现自己处于特定行中的最后一次更改毫无意义的情况下,此选项很有用,例如,如果所有更改都是代码格式。在这种情况下,您可以检查文件的先前版本是什么样的。要执行此操作,请右键单击更改,然后从上下文菜单中选择“ 注释上一版本 ”。
您还可以从文件历史记录视图中注释特定文件。在“历史记录”选项卡中,选择要查看的文件版本,右键单击相应的行,然后从上下文菜单中选择“ 注释 ”。
要查看文件的注释版本与其先前版本之间的差异,请将光标放在注释上,右键单击它并从上下文菜单中选择“ 显示差异” 。IntelliJ IDEA打开文件的差异查看器:
如果您使用Git进行版本控制,您还可以从“注释”视图跳转到“ 版本控制”工具窗口的“ 日志”选项卡中的相应提交 。
要执行此操作,请将光标放在注释上,右键单击它,然后从上下文菜单中选择“在Git日志中选择”。您还可以使用“ 复制修订号”命令在日志中找到修订。
对于https://github.com/上托管的项目,还可以使用Open on GitHub命令将您带到相应的提交。