idea使用帮助文档18(Git)

您所在的位置:网站首页 kdbx文件怎么打开 idea使用帮助文档18(Git)

idea使用帮助文档18(Git)

2023-10-24 02:28| 来源: 网络整理| 查看: 265

Git # 

为了能够使用的Git版本控制,确保了Git的整合插件在启用设置/首选项 对话框(Ctrl+Alt+S)下的插件。

在为现有本地项目启用Git版本控制或从远程存储库克隆Git项目之前,请执行以下操作:

下载并安装Git。支持最低版本的Windows为2.4,Linux和MacOS为1.8.0.0。

在Settings / Preferences 对话框(Ctrl+Alt+S)中,选择Version Control | 在左窗格中Git并指定Git可执行文件的路径。

设置远程Git存储库的密码

设置Git遥控器的密码# 

每次与远程Git存储库交互时(例如,在拉取, 更新或推送操作期间),都需要授权。您可以配置IntelliJ IDEA以记住您的密码,这样您就不必在每次需要授权时都指定凭据。

配置密码策略# 

在“ 设置” 对话框(Ctrl+Alt+S)中,选择“ 外观和行为” 系统设置| 密码 在左边。

选择IntelliJ IDEA如何处理Git远程存储库的密码:

在本机Keychain中:选择此选项以使用本机Keychain存储您的密码。此设置仅适用于MacOS和Linux。

在KeePass中:选择此选项以使用KeePass密码管理器来存储您的密码。使用KeePass密码管理器时,将使用主密码来访问存储个人密码的文件。一旦IntelliJ IDEA记住您的密码,除非您需要访问密码数据库,否则它不会要求它们。输入将用于访问 MasterPassword 字段中的c.kdbx文件的密码。

您可以在“ 数据库”字段中更改c.kdbx文件的默认位置。

要导入c.kdbx文件,请单击“设置”图标 并从下拉菜单中选择“ 导入 ”,或单击浏览图标并指定包含密码的本地文件的路径。

如果要从数据库中删除现有密码,请选择“ 清除”。

重启后不要保存,忘记密码:如果要在关闭IntelliJ IDEA后重置密码,请选择此选项。

 

设置Git存储库#  从远程主机检出项目(克隆)# 

IntelliJ IDEA允许您签出(在Git术语克隆中)现有存储库并根据您下载的数据创建新项目。

从主菜单中,选择VCS | 从版本控制检出| Git,或者,如果当前没有打开任何项目,请从Version Control中选择Checkout Git在欢迎屏幕上。

在“ 克隆存储库”对话框中,指定要克隆的远程存储库的URL(可以单击“ 测试”以确保可以建立与远程的连接)。

在“ 目录”字段中,指定将创建将克隆远程存储库的本地Git存储库的文件夹的路径。

单击克隆。如果要根据已克隆的源创建IntelliJ IDEA项目,请在确认对话框中单击“ 是 ”。Git根映射将自动设置为项目根目录。

如果您的项目包含子模块,它们也将被克隆并自动注册为项目根目录。

将现有项目置于Git版本控制下# 

除了克隆远程存储库之外,您还可以基于现有项目的源创建本地存储库。

将整个项目导入单个Git存储库# 

打开要放在Git下的项目。

从主菜单中,选择VCS | 启用版本控制集成。

在打开的对话框中,从下拉列表中选择Git,然后单击“ 确定”。

将不同的项目模块导入不同的Git存储库# 

打开要放在Git下的项目。

从主菜单中,选择VCS | 导入版本控制| 创建Git存储库。

在打开的对话框中,指定将创建新Git存储库的目录。

Git不支持外部路径,因此如果选择项目根目录之外的目录,请确保将创建存储库的文件夹也包含项目根目录。

将文件添加到本地存储库# 

在为项目初始化Git存储库之后,需要向其添加项目数据。

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 本地更改”选项卡。

通过按或从上下文菜单中选择“ 添加到VCS”, 将任何文件放在版本控制下的Unversioned Files更改列表中。您可以添加整个更改列表,也可以选择单独的文件。 Ctrl+Alt+A

您还可以从“ 项目”工具窗口将文件添加到本地Git存储库。选择要添加的文件,然后按 Ctrl+Alt+A或选择Git | 从上下文菜单中添加。

如果您为项目启用了Git集成,IntelliJ IDEA建议在Git版本控制下添加每个新创建的文件(您可以在Version Control | Confirmation下的Settings 对话框(Ctrl+Alt+S)中更改此行为。如果您希望某些文件始终保持无版本,您可以配置Git忽略它们。

从版本控制中排除文件(忽略)# 

有时您可能需要保留某些类型的文件无版本。这些可以是VCS管理文件,实用程序工件,备份副本等。

一旦你将文件添加到Git版本控制,忽略它将无效。您需要先将其从Git存储库中删除。

您可以通过IntelliJ IDEA忽略文件,IDE不会建议将它们添加到Git,并将它们突出显示为忽略。但是,由于这是在IDE端完成的,Git会将此类文件视为未版本控制,因此如果您需要在IntelliJ IDEA之外执行任何操作,或共享您的项目,还建议您添加要忽略的文件列表。在 的.gitignore文件(有关说明,请参阅https://git-scm.com/docs/gitignore)。

配置Git要忽略的文件列表#  或者:

在Settings / Preferences 对话框中(Ctrl+Alt+S)选择 Version Control | 左窗格中的“ 忽略的文件 ”。

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 本地更改”选项卡。单击眼睛图标工具栏上的,然后选择“ 配置忽略的文件”。

单击工具栏上的“ 添加” 加按钮。

在“ 忽略无版本文件”对话框中,指定要忽略的文件/目录,或定义文件名模式:

忽略指定的文件:指定相对于项目根目录的文件名。

忽略下面的所有文件:指定相对于项目根目录应忽略其内容的目录。该规则以递归方式应用于所有子目录。

忽略所有匹配的文件:键入定义要忽略的文件名称的模式。该规则适用于项目根目录下的所有目录。

两个字符可用作通配符:

*:替换任何字符串。

?:替换单个字符。

例如,*.iml将忽略具有IML扩展名的所有文件; *.?ml将忽略所有扩展名以的文件ml。

/不支持 将通配符与斜杠()结合使用以将范围限制到某个目录。

检查项目状态# 

IntelliJ IDEA允许您检查本地工作副本与项目的存储库版本相比的状态。它可以让您查看哪些文件已被修改,哪些新文件已添加到VCS,哪些文件未被Git跟踪。

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 本地更改”选项卡:

档案状态

 

在默认变更表显示已被修改自上次与远程存储库(蓝色高亮显示)同步所有文件,并已添加到VCS,但尚未提交,但(绿色高亮显示)所有新文件。

该版本的文件,更改列表显示,已添加到项目中的所有文件,但不被Git的跟踪。

如果合并期间存在未解决的冲突,则“ 合并冲突”节点将显示在相应的更改列表中,并带有解决它们的链接:

未解决的冲突

 

有关更改列表的更多信息,请参阅将更改组更改为不同的更改列表。

跟踪编辑器中文件的更改# 

您还可以在编辑器中修改文件时跟踪文件的更改。所有更改都会突出显示更改标记 ,这些更改标记显示在修改后的行旁边的左侧装订线中,并显示自上次与存储库同步以来引入的更改类型 。当您对存储库提交更改时,更改标记将消失。

您在文本中引入的更改采用颜色编码:

新添加的行的标记 添加了一行。

修改后的线的标记 线路改变了。

删除行时,左侧装订线中会显示以下标记: 删除的行标记

您可以使用将鼠标光标悬停在更改标记上然后单击它时显示的工具栏来管理更改。工具栏与显示修改行的先前内容的框架一起显示:

修改后的线标记

您可以通过单击来回滚更改还原图标 (请注意,自上次修订以来对文件的所有更改都将被还原,而不仅仅是当前行),并通过单击来探索当前行的当前版本和存储库版本之间的差异 显示差异图标

添加远程存储库# 

为了能够在您的Git项目上进行协作,您需要配置 从中获取数据的远程存储库,并在需要共享工作时进行推送。

如果您克隆了远程Git存储库,例如从GitHub克隆,则会自动配置远程,并且您不必在要与其同步时指定它(换句话说,执行pull或push操作时)。

Git为你克隆的遥控器提供的默认名称是origin。

 

但是,如果您基于本地源创建了Git存储库,则需要为其他贡献者添加一个远程存储库,以便能够将更改推送到该存储库,并且您可以共享工作结果。

从本地来源创建远程# 

当您准备通过选择VCS |来推送提交时, 调用Push对话框 Git | 推从主菜单,或按Ctrl+Shift+K。

如果到目前为止尚未添加任何遥控器,将显示“ 定义远程”链接而不是远程名称。单击它以添加遥控器。

在打开的对话框中,指定远程名称及其托管位置,然后单击“ 确定”。

在某些情况下,您还需要添加第二个远程存储库。这可能很有用,例如,如果您克隆了一个您没有写入权限的存储库,并且您要将更改推送到您自己 的原始项目的fork中。另一个常见的情况是,您已经克隆了自己的存储库,这是另一个人的项目分支,您需要与原始项目同步并从中获取更改。

添加第二个遥控器# 

从主菜单中,选择VCS | Git | 遥控器。在Git的遥控器 对话框打开。

单击工具栏上的“ 添加” 加按钮或按Alt+Insert。

在打开的对话框中,指定远程名称和URL,然后单击“ 确定”。

 

要编辑远程(例如,更改已克隆的原始项目的名称),请在Git Remotes对话框中选择它,然后单击工具栏上的“ 编辑” 编辑按钮,或按Enter。

要删除不再有效的存储库,请在Git Remotes对话框中选择它,然后单击工具栏上的“ 删除” 去掉按钮,或按Alt+Delete。

与远程存储库同步# 

在通过将更改推送到上游来共享工作结果之前,需要与远程存储库同步以确保项目的本地副本是最新的。您可以通过以下方式之一执行此操作:获取更改, 拉取更改,更新项目。

获取更改# 

当您获取来自上游的变化,从作了自上次与远程仓库同步提交所有新的数据下载到本地副本。此新数据未集成到本地文件中,更改不会应用于您的代码。

提取的更改将存储为远程分支,这使您有机会在将它们与文件合并之前对其进行检查 。由于fetch不会影响您的本地开发环境,因此这是一种更新远程存储库所有更改的安全方法。

要获取更改,请从主菜单中选择VCS | Git | 抓取。

拉变化# 

拉动从远程仓库变化为方便快捷方式获取并随后合并的变化。当您拉动时,您不仅可以下载新数据,还可以将其集成到项目的本地工作副本中。

要进行更改,请执行以下操作:

从主菜单中,选择VCS | Git | 拉。“ 拉动更改”对话框打开。

如果您的项目有多个Git存储库,请从Git Root下拉列表中选择要更新的本地存储库的路径 。

如果为存储库配置了多个远程数据库,请在“ 远程”下拉列表中选择要从中提取数据的远程数据库的URL 。

选择要从中获取更改的分支,然后合并到当前签出的分支中。

从“ 策略”下拉列表中,选择将用于解决合并期间发生的冲突的 合并策略。

如有必要,请选择以下内容

无提交:如果您不希望IntelliJ IDEA自动提交合并结果,请选择此选项。在这种情况下,您可以检查它们并在必要时进行调整。

无快进:选择此选项可生成合并提交,即使合并已解析为快进(即仅更新了分支指针)。

Squash commit:选择此选项可在当前分支之上创建单个提交,而不是合并一个或多个分支。它产生工作树和索引状态,就好像真正的合并发生一样,但它实际上并没有提交或移动HEAD。

添加日志信息:如果希望IntelliJ IDEA使用除分支名称之外的正在合并的实际提交中的单行描述填充日志消息,请选择此选项。

单击“ 拉”以从所选远程存储库中获取并应用更改。

更新你的项目# 

如果您有多个项目根,或者每次与远程存储库同步时想要从所有分支获取更改,您可能会发现 更新项目是一个更方便的选项。

执行更新操作时,IntelliJ IDEA 从所有项目根和分支获取更改,并将跟踪的远程分支合并到本地工作副本(相当于pull)。

如果您的项目包含子模块,并且它们位于分支上,则它们也将自动更新。

如果子模块处于分离的HEAD状态,则IntelliJ IDEA将调用git submodule update,这将检查根存储库中引用的提交。这意味着仅当子模块中的子模块引用更改或添加了新的子模块时才会执行更新。

 

要更新项目,请执行以下操作:

1.从主菜单中,选择VCS | 更新项目或按Ctrl+T。“ 更新项目”对话框打开。

选择更新类型(此策略将应用于Git版本控制下的所有根目录):

合并:选择此选项可在更新期间执行合并。这相当于运行git fetch然后git merge,或git pull --no-rebase。

Rebase:选择此选项可 在更新期间执行rebase。这相当于运行git fetch然后git rebase,或者git pull --rebase(所有本地提交都将放在更新的上游头之上)。

分支默认值:如果要为不同分支应用不同的更新策略,请选择此选项。您可以branch.在.git / config 配置文件的部分中为每个分支指定默认更新类型。

指定在更新之前清理工作副本时用于保存更改的方法,以便在更新完成后还原未提交的更改:

使用Stash:选择此选项可在git存储中保存本地更改。如果您需要在IntelliJ IDEA之外应用具有隐藏更改的修补程序,这非常有用,因为它们是由Git本身生成的。

使用Shelve:选择此选项可将本地更改放入工具架。搁置由IntelliJ IDEA完成,搁置更改生成的补丁通常应用于IntelliJ IDEA中。

提交和推送更改# 

在将新文件添加到Git存储库或已经在Git版本控制下的已修改文件并且您对其当前状态感到满意之后,您可以共享您的工作结果。这涉及在本地提交它们以将存储库的快照记录到项目历史记录中,然后将它们推送到远程存储库以便其他人可以使用它们。

在本地提交更改# 

要调用“ 提交更改”对话框,请在“ 本地更改”视图中选择文件(或整个更改列表),然后单击 提交按钮 工具栏上的,或者在选择 的上下文菜单中选择“ 提交更改 ”; 或按Ctrl+K。

“ 提交更改”对话框列出自上次提交以来已修改的所有文件以及所有新添加的无版本文件。

输入提交消息,并在将所选文件提交到本地存储库之前选择希望IntelliJ IDEA执行的Before Commit操作。

 

您可以单击消息历史记录以从最近的提交消息列表中进行选择。

 

如有必要 ,请在Git部分中选择以下选项:

作者:如果您要提交其他人所做的更改,您可以指定这些更改的作者。

修改提交:如果要将本地更改添加到最新提交,请选择此选项(有关详细信息,请参阅 使用先前提交(修改提交)组合暂存更改)。

签名提交:如果您要签署提交以证明您将要签入的更改是由您做出的,或者您对您提交的代码负责,请选择此选项。

启用此选项后,将在提交消息的末尾自动添加以下行: Signed off:

 

单击“ 提交”按钮或将鼠标悬停在此按钮上以显示以下可用提交选项之一:

提交和推送:在提交后立即将更改推送到远程存储库。

您还可以按下Ctrl+Alt+K以从“ 提交”对话框中调用“ 提交”和“推送”操作 。

创建补丁: 根据您要提交的更改生成补丁。在打开的“ 创建修补程序”对话框中,键入修补程序文件的名称,并指定是否需要反向修补程序。

远程运行:运行您的个人构建。此选项仅在您登录TeamCity时可用。 有关详细信息,请参阅TeamCity插件文档。

即使项目中仅存在未版本控制的文件,也 可以调用“ 提交更改”对话框,例如从IntelliJ IDEA外部添加。

提交文件的一部分# 

有时,当您进行与特定任务相关的更改时,还会应用影响同一文件的其他不相关代码修改。将所有这些更改包含在一个提交中可能不是一个好的选择,因为审查,还原, 挑选它们等等会更加困难。

IntelliJ IDEA允许您通过以下方式之一单独提交此类更改:

选择要在“ 提交更改”对话框中包含在提交权限中的修改后的代码块,并将其他更改保留为待处理状态,以便稍后提交。

在编辑代码时,将不同的代码块动态地放入不同的更改列表中,然后分别提交这些更改列表。

 

选择要提交的块# 

调用的提交更改对话框。

点击DIFF显示库版本和所选文件的本地版本之间的差异。

选中要提交的每个已修改或新添加的代码块旁边的复选框,并保留未选择的其他更改:

部分提交对话框

 

单击提交。未选中的更改将保留在当前更改列表中,以便您可以单独提交它们。

将更改放入差异更改列表中# 

在编辑器中对文件进行更改时,单击装订线中的相应 更改标记。

在显示的工具栏中,选择已修改代码块的目标更改列表(或创建新的更改列表):

部分提交更改列表

 

分别提交每个更改列表。

将更改推送到远程存储库# 

在推送更改之前,请与远程同步并确保存储库的本地副本是最新的以避免冲突。

IntelliJ IDEA允许您将更改从当前分支上载到其 跟踪的分支或任何其他远程分支。

按Ctrl+Shift+K或选择VCS | Git | 从主菜单中按。该推提交对话框打开,显示所有Git仓库(多库项目),并列出所有犯当前分支取得了自上次推每个存储库。

如果您的项目使用多个不同步控制的存储库,则默认情况下仅选择当前存储库(有关如何启用同步存储库控制的详细信息,请参阅 版本控制设置:Git)。

如果存储库中没有遥控器,则会显示“ 定义远程”链接。单击此链接并在打开的对话框中指定远程名称和URL。它将被保存,您可以稍后通过VCS |进行编辑 Git | 遥控器 (有关详细信息,请参阅添加远程存储库)。

如果要修改要推送的目标分支,可以单击分支名称。标签变为文本字段,您可以在其中键入现有分支名称,或创建新分支。您还可以单击右下角的“ 编辑所有目标”链接以同时编辑所有分支名称。

请注意,您无法更改本地分支:将推送每个选定存储库的当前分支。

如果要在推送更改之前预览更改,请选择所需的提交。右侧窗格显示所选提交中包含的更改。您可以使用工具栏按钮来检查提交详细信息。

准备好后 单击“ 推送”按钮,然后从下拉菜单中选择要执行的操作: 推送 或强制推送。

这些选项仅在 启用了允许强制推送选项时可用(请参阅版本控制设置:Git),否则,您只能执行push操作。

如果提交的作者与当前用户不同,则此提交将标记为星号。

如果推被拒绝,因为你的工作拷贝已经过时,IntelliJ IDEA的显示推送拒绝对话,前提是 如果当前分支的推动被拒绝自动更新的选项的Git设置的页面设置 对话框中没有被选中。请执行下列操作:

如果您的项目使用多个Git存储库,请指定要更新哪些存储库。如果要更新所有存储库,无论是否拒绝推送,请选择“ 更新未拒绝的存储库”选项。如果清除此选项,则仅更新受影响的存储库。

如果希望IntelliJ IDEA在下次使用您在此对话框中选择的更新方法拒绝推送时静默应用更新过程,请选择记住更新方法选项并在将来静默更新选项。

离开此对话框后,将选中“ 设置”对话框的Git设置页面中的“ 当前分支被按下时自动更新”复选框,并且应用的更新方法将成为默认方法。

要更改更新策略,请取消选择此选项以在下次拒绝当前分支时调用“ 推送已拒绝”对话框,应用其他更新过程,然后再次选择“ 记住更新方法选项”选项。

通过分别单击Rebase或Merge按钮 选择更新方法(rebase或merge)。

什么时候需要用force push?# 

当您运行push时,如果远程存储库包含您缺少的更改并且您要使用存储库的本地副本覆盖,Git将拒绝完成操作。通常,在使用更改进行更新之前,需要执行pull以与远程同步。

该--force push命令禁用此检查,并允许您覆盖远程存储库,从而删除其历史记录并导致数据丢失。

您可能仍需要执行的一种可能情况--force push是,您重新推送推送的分支,然后将其推送到远程服务器。在这种情况下,当您尝试推送时,Git将拒绝您的更改,因为远程引用不是本地引用的祖先。如果你在这种情况下执行pull,你将得到两个你需要合并的分支副本。

如果您决定强制推送重新分支的分支并且您正在团队中工作,请确保:

没有人拉你的分支并对它进行了一些局部更改

所有挂起的更改都已提交并推送

您拥有该分支的最新更改

调查变化# 

在IntelliJ IDEA中,您可以追溯项目中的所有更改。这有助于您找到任何更改的作者, 查看文件版本之间的差异,并在必要时安全回滚和撤消更改。

查看项目历史# 

您可以查看对与指定过滤器匹配的项目源所做的所有更改。要查看项目历史记录,请打开“ 版本控制”工具窗口(Alt+9)并切换到“ 日志”选项卡。它显示了提交给所有分支和远程存储库的所有更改:

日志视图

 

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

根路径

 

搜索项目历史# 

通过输入完整提交名称或消息或其片段,修订号或正则表达式来搜索提交列表。

按分支或收藏分支,用户,日期和文件夹(或多根项目的根目录和文件夹)筛选提交。

单击工具栏上的Go to Hash / Branch / Tag 去图标或按,Ctrl+F然后指定要跳转到的分支的提交哈希,标记或名称(您将进入该分支中的最新提交)。

单击箭头以跳转到长分支中的下一个提交:

跳到下一个提交

 

按Left和Right键跳转到父/子提交。如果您在“ 日志”视图中提交了不同的存储库并且多个分支都已混合,则此功能尤其有用。

有关项目日志视图的更多详细信息,请参阅日志选项卡。

在特定修订版中查看项目的快照# 

IntelliJ IDEA允许您在选定的版本中查看项目的状态:

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 日志”选项卡。

选择一个提交,然后从上下文菜单中选择“ 修订时浏览存储库”。

将打开 “ 存储库”工具窗口,其中包含所选修订版本中项目的快照。

查看文件历史# 

您可以查看对特定文件所做的所有更改,并确定每个修订版中的确切修改内容。

在任何视图中选择所需文件(在“ 项目”工具窗口中,在编辑器中,在“ 版本控制”工具窗口的“ 本地更改”选项卡中,依此类推)。

选择Git | 从上下文菜单中显示历史记录。“ 历史记录”选项卡将添加到“ 版本控制”工具窗口,其中显示所选文件的历史记录,并允许您查看和比较其修订版本。

要确定在特定修订中引入了哪些更改,请在列表中选择它,然后按 Ctrl+D或单击显示差异工具栏上的按钮。在不同浏览器将打开,显示什么在这个文件的修订已经改变。

查看本地和已提交版本之间的差异# 

您可以检查已提交的文件修订版本与其本地版本的不同之处:

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 日志”选项卡。

选择您感兴趣的提交,然后在右侧窗格中选择该文件。

单击显示差异工具栏上的按钮。

查看如何合并更改# 

IntelliJ IDEA的允许您查看如何变化合并从一个分支到另一个,以及如何准确冲突(如果有的话)是解决在合并过程中:

在“ 日志”视图中,选择您感兴趣的合并提交。 如果在合并期间未检测到并解决冲突,IntelliJ IDEA将在“ 更改的文件”窗格中显示相应的消息 ,并建议您查看源自父母双方的更改:

来自父母的变化

从其中一个节点中选择所需文件,然后单击 工具栏上的“ 显示差异” 显示差异图标或按Ctrl+D。在不同浏览器会显示一个双面板DIFF让您的当前版本与所选父比较。

如果在合并期间发生冲突,“ 更改的文件”窗格将显示与冲突合并的文件列表。

选择所需文件,然后单击工具栏上的“ 显示差异” 显示差异图标或按Ctrl+D。在不同浏览器会显示一个三板DIFF让您当前的版本,它的每一个父母的比较,看看冲突究竟是如何得到解决。

找到代码作者(注释/责备)# 

您可以通过使用VCS注释找出谁引入了对文件的更改 (对应于git-blame)。带注释的视图显示了每行代码的详细信息::

注释

在当前版本中修改的行的注释用粗体和星号标记。

启用注释# 

在编辑器或差异查看器中右键单击左侧装订线,然后从上下文菜单中选择“ 注释 ”。

您可以为Annotate命令指定自定义快捷方式:在Settings / Preferences 对话框中(Ctrl+Alt+S)选择左侧的Keymap并转到 Version Control | Git | 注释。

 

配置注释中显示的信息量# 

您可以在注释视图中选择要查看的信息量。

右键单击注释装订线,选择“ 查看”并选择要查看的信息类型,包括发生此更改的版本,日期,不同格式的作者姓名以及提交编号。

您还可以在“ 颜色”下设置突出显示。

 

配置注释选项# 

右键单击注释装订线,然后从上下文菜单中选择“ 选项 ”:

忽略空格:空格将被忽略(git blame -w)。这意味着注释将指向先前有意义的提交。

检测文件中的移动:当提交移动或复制同一文件中的行时,将忽略此类更改(git blame -M)。这意味着注释将指向先前有意义的提交。

检测跨文件的移动:当提交移动或复制在同一提交中修改的其他文件中的行时,将忽略此类更改(git blame -C)。这意味着注释将指向先前有意义的提交。

注释先前的修订版# 

IntelliJ IDEA不仅可以注释当前文件修订版,还可以注释其以前的修订版。注释装订线的上下文菜单中提供了以下选项:

注释修订:如果要在提交特定更改后检查文件的外观,此选项很有用。

注释先前版本:如果您发现自己处于特定行中的最后一次更改毫无意义的情况下,此选项很有用,例如,如果所有更改都是代码格式。在这种情况下,您可以检查文件的先前版本是什么样的。

您还可以从“ 历史记录”视图中注释特定文件。在“ 历史记录”选项卡中,选择要查看的文件版本,右键单击相应的行,然后从上下文菜单中选择“ 注释 ”。

 

使用补丁# 

您可以将它们放在.patch文件中,而不是提交更改,以后可以将其应用于您的源,或者通过电子邮件发送,等等。

创建补丁# 

要基于未提交的更改创建修补程序,请执行以下操作:

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 本地更改”选项卡。

选择要根据其创建修补程序的文件或更改列表。

从上下文菜单或主VCS菜单中 选择“ 创建补丁”。

在打开的对话框中,确保选中要包含在修补程序中的所有更改,输入提交注释(可选)并单击“ 创建修补程序”。

在“ 修补程序文件设置”对话框中,根据需要修改默认修补程序文件位置,然后单击“ 确定”。

如果您不需要将补丁保存到文件中,并希望(例如)通过电子邮件或通过信使发送补丁,则可以从所选文件或更改列表的上下文菜单中选择“ 复制为补丁到剪贴板”,然后将其粘贴到邮件正文中。

您还可以根据已提交的更改创建修补程序。要从整个提交创建补丁,请在“ 日志”视图中找到它,然后从上下文菜单中选择“ 创建补丁 ”。如果需要在单个文件上创建补丁,并且相应的提交包含多个文件,请执行以下操作:

在任何视图中选择所需文件(在“ 项目”工具窗口中,在编辑器中,在“ 版本控制”工具窗口的“ 本地更改”选项卡中,选择一个子项)。

选择Git | 从主VCS菜单或选择的上下文菜单中显示历史记录。“ 历史记录”选项卡将添加到“ 版本控制”工具窗口。

右键单击修订并从上下文菜单中选择“ 创建修补程序 ”,或单击工具栏上的“ 创建修补程序”图标“应用补丁”图标

应用补丁# 

要将存储在文件中的更改应用于源,请执行以下操作:

选择VCS | 从主菜单应用补丁。

在打开的“ 应用修补程序”对话框中,指定要应用的.patch文件的路径。

如有必要,请单击“ 映射基目录”图标Map基本目录图标以指定相对于将解释补丁文件中的文件名的目录。您可以将基目录映射到单个文件,目录或选择。

如果在创建补丁后编辑了源代码,则可能会发生冲突。要检查是否可以在没有冲突的情况下应用修补程序,请单击“ 显示差异”图标显示差异图标或按Ctrl+D。如果存在冲突,相应的行将以红色突出显示。

如果要对修补程序中指定的文件中存储的文件应用更改,可以使用“ 条带目录”按钮去除前导目录Strip目录图标

选择要从列表中添加修补程序的现有更改列表,或在“ 名称”字段中指定新更改列表的名称,并可选择在此更改列表中输入注释。

如果要激活此更改列表,请选择“ 设置活动”选项。

如果希望IntelliJ IDEA在其停用时保留与新更改列表关联的任务的上下文,并在更改列表变为活动状态时还原上下文,请选择“ 跟踪上下文”选项(有关详细信息,请参阅管理任务和上下文)。

您还可以复制补丁文件内容并通过选择VCS |来应用它 从主菜单中应用剪贴板中的Patch。例如,当您通过电子邮件收到修补程序并且不想保存它时,这很方便。对于 Git格式补丁,IntelliJ IDEA提取提交消息和作者,并自动填写“ 提交更改”对话框中的相应字段。

管理分支# 

您可以将它们放在.patch文件中,而不是提交更改,以后可以将其应用于您的源,或者通过电子邮件发送,等等。 处理功能,或冻结某个代码库的某个状态以进行发布等。

在IntelliJ IDEA中,所有带分支的操作​​都在Git Branches弹出窗口中执行。要调用它,请单击状态栏中的Git小部件,或者按,Alt+`然后选择其中的分支:

git小部件

 

当前签出的分支的名称显示在状态栏的Git小部件中。

如果您有许多分支,则可以选择是要在分支弹出窗口中显示所有分支,还是仅显示收藏夹:在分支弹出窗口底部切换仅显示收藏夹和显示更多命令。

要将分支标记为收藏夹,请将鼠标光标悬停在分支名称上,然后单击左侧显示的星形轮廓: GitFavoriteBranch

默认情况下 ,主分支被标记为收藏夹。

创建一个新分支# 

在“ 分支”弹出窗口中,选择“ 新建分支”。

在打开的对话框中,指定分支名称,如果要切换到该分支,请确保选中Checkout分支选项。

新分支将从当前的HEAD开始。如果要从先前的提交而不是当前的分支HEAD启动分支,请在日志中选择此提交,然后从上下文菜单中选择“ 新建分支 ”。

将分支签出为新的本地分支# 

如果您想在其他人创建的分支中工作,则需要检查它以创建该分支的本地副本:

在“ 分支”弹出窗口中,选择要从远程分支本地签出的分支,或者如果项目具有多个根并且 启用了同步分支控制,则选择“公共远程分支”,或者从“ 存储库”|“ 分支”中选择。远程分支(如果已禁用),并从可用操作列表中选择“ 校验”。

如有必要,请为此分支输入新名称,或保留与远程分支对应的默认名称,然后单击“ 确定”。

在分支之间切换# 

在多任务处理时,您经常需要在分支之间跳转以提交不相关的更改。

在“ 分支”弹出窗口中,选择要在“ 本地分支”下切换到的分支,然后从可用操作列表中选择“ 校验 ”(如果要修改本地分支名称,请选择“ 校验为”)。

接下来会发生什么取决于您尚未提交的本地更改与您要检出的分支之间是否存在冲突:

如果您的工作树是干净的(即您没有未提交的更改),或者您的本地更改不与指定的分支冲突,则将检出此分支(IntelliJ IDEA窗口右下角会弹出一条通知)。

如果您的本地更改将被结帐覆盖,IntelliJ IDEA将显示一个文件列表,阻止您检出所选分支,并建议在强制结帐和智能结账之间进行选择。

如果单击“ 强制结帐”,则会覆盖本地未提交的更改,您将丢失它们。

如果单击智能结账,IntelliJ IDEA将存储 未提交的更改,签出所选分支,然后取消暂停更改。如果在卸载操作期间发生冲突,系统将提示您合并更改。有关详细信息,请参阅解决冲突。

比较分支# 

如果要检查两个分支如何相互分离,可以比较它们。

从“ 分支”弹出窗口中选择要与当前分支进行比较的分支,然后从可用操作列表中选择“ 比较 ”。

在打开的对话框中,“ 日志”选项卡显示一个分支中存在但在另一个分支中不存在的所有提交的列表。选择提交时,右窗格将显示受此提交影响的文件列表。您可以单击工具栏上的“ 显示差异”图标图标动作差异svg,以查看此提交中所选文件的更改方式。

“ 文件”选项卡显示两个分支之间存在分歧的所有文件的列表。单击图标动作差异svg 显示当前分支中所选文件与要与之比较的分支中的差异。

删除分支# 

你已经经过整合的变化从一个特性分支纳入发展方式为主线,你可以删除你不再需要的分支:

调用分支弹出窗口并选择要删除的分支。

从子菜单中 选择“ 删除 ”。

删除分支后,会在右下角显示通知,您可以从中恢复已删除的分支:

删除分支通知

如果分支包含尚未合并到其上游分支或当前分支的提交,它仍将立即删除(相当于git branch --D或git branch --delete --force命令),但通知还将包含允许您查看未合并提交的链接。

如果已删除的分支正在跟踪远程分支,则您还可以从此通知中删除远程分支。

为多根存储库配置同步分支控制# 

如果您有一个多根存储库,则可以配置IntelliJ IDEA以在所有根上同时执行所有分支操作(例如检出,合并,删除等),就像它是单个存储库一样。如果某个操作至少在其中一个存储库中失败,则IntelliJ IDEA会建议您在存储成功的存储库中回滚此操作,从而防止分支出现分歧。

在Settings / Preferences 对话框中(Ctrl+Alt+S)选择Version Control | Git。

选择“ 对所有根目录执行分支操作”选项。

解决冲突# 

当您在团队中工作时,当有人将更改推送到您当前正在处理的文件时,您可能会遇到这种情况。如果这些更改不重叠(即,对不同的代码行进行了更改),则会自动合并冲突的文件。但是,如果相同的行受到影响,Git不能随意选择一侧而是另一侧,并要求您解决冲突。

在Git中,当您尝试执行以下操作之一时可能会出现冲突:pull, merge,rebase, cherry-pick,unstash changes或 apply patch。如果存在冲突,则这些操作将失败,系统将提示您接受上游版本,更喜欢您的版本或合并更改:

“合并冲突的文件”对话框

IntelliJ IDEA提供了一种在本地解决冲突的工具。该工具由三个窗格组成。左窗格显示只读本地副本; 右侧窗格显示签入存储库的只读版本。中央窗格显示了一个功能齐全的编辑器,其中显示了合并和解决冲突的结果。最初,此窗格的内容 与文件的基本修订版本相同,即从中派生两个冲突版本的修订版本。

解决冲突# 

单击“ 冲突”对话框中的“ 合并 ” ,或在编辑器中选择冲突文件,然后选择“ VCS”  | 从主菜单中解决冲突。

要自动合并所有不冲突的更改,请单击工具栏上的“应用非冲突更改”按钮 (应用所有非冲突更改)。您还可以使用 从左侧按应用非冲突的更改(从左侧应用非冲突更改)和 从右按钮应用非冲突的更改(从右侧应用非冲突更改)分别合并对话框左/右部分的非冲突更改。

要解决冲突,您需要选择要应用(接受接受按钮或忽略 忽略按钮)左侧(本地)和右侧(存储库)版本的操作,并在中央窗格中检查生成的代码:

解决冲突

 

您还可以右键单击中央窗格中的冲突,然后使用上下文中的命令。在使用左解析和解析使用权的命令来接受从一侧变化和分别从对方忽略它们提供一个快捷方式:

相互冲突的变化的上下文菜单

 

对于简单冲突(例如,如果在不同的文件修订版中修改了同一行的开头和结尾),则可以使用Resolve simple conflicts 解决简单冲突按钮 选项,该 选项允许在一次单击中合并更改:

“解决简单冲突”按钮

“ 应用所有非冲突更改”操作无法解决此类冲突,因为您必须确保它们已正确解析。

比较不同版本以解决冲突也可能很有用。使用 比较内容按钮 工具栏按钮调用选项列表。请注意,Base指的是本地和存储库版本源自的文件版本(最初显示在中间窗格中),而Middle指的是生成的版本。

在中央窗格中查看合并结果,然后单击“ 应用”。

生产力提示# 

自动应用非冲突的更改

您可以将IntelliJ IDEA配置为始终自动应用非冲突更改,而不是通过“ 合并”对话框告知它执行此操作。为此,请在“ 设置/首选项” 对话框(Ctrl+Alt+S)中,转到“ 工具”| 在左侧进行差异合并,然后选择自动应用非冲突更改选项。

管理中央窗格中的更改

您可以使用将鼠标光标悬停在装订线中的更改标记上时显示的工具栏管理中央窗格中的更改,然后单击它。工具栏与显示修改行的先前内容的框架一起显示:

更改工具栏

例如,当存在多个非冲突的更改,并且您只需要跳过其中的一个或两个时,使用“ 应用所有非冲突更改”操作同时应用所有这些更容易,然后使用从此工具栏还原操作。

 

处理与LF和CRLF行结尾相关的冲突# 

通常,在团队中工作并为同一存储库做贡献的人使用不同的操作系统。这可能会导致与行结束的问题,因为Unix,Linux和MacOS的我们LF,和Windows使用CRLF来标记行的结束。

IntelliJ IDEA在差异查看器中显示行结尾的差异,因此您可以手动修复它们。如果您希望Git自动解决此类冲突,您需要 在Windows和Linux和MacOS上将core.autocrlf属性设置为(有关更多详细信息,请参阅处理行结尾)。您可以通过在Windows或Linux和macOS上运行来 手动更改配置。trueinputgit config --global core.autocrlf truegit config --global core.autocrlf input

但是,IntelliJ IDEA可以自动分析您的配置,警告您是否要提交CRLF到远程存储库,并建议将core.autocrlf设置设置为true或input 取决于您的操作系统。

要启用智能处理LF和CRLF行分隔符,请打开“ 设置” 对话框(Ctrl+Alt+S),然后选择“ 版本控制” 左边的Git节点。如果要提交CRLF行分隔符选项,请启用警告。

启用此选项后,IntelliJ IDEA将在每次提交带分隔符的文件时显示行分隔符警告对话框CRLF,除非您在受影响的文件中设置了任何相关的 Git属性(在这种情况下,IntelliJ IDEA假设您清楚地了解你在做什么,并从分析中排除这个文件。

在“ 行分隔符警告”对话框中,单击以下选项之一:

Commit As是忽略警告并使用CRFL分隔符提交文件。

修复并提交将core.autocrlf属性设置为true或input取决于您的操作系统。因此,CRLF行分隔符将LF在提交之前被替换。

如果稍后需要查看在合并期间如何解决冲突,可以在“ 日志”视图中找到所需的合并提交,在右侧的“ 提交详细信息”窗格中选择存在冲突的文件,然后单击显示差异图标或按Ctrl+D ( 有关详细信息,请参阅查看更改的合并方式)。

 

同时处理多个功能# 

有时你需要在未完成的事情之间切换不同的任务,然后返回给他们。IntelliJ IDEA为您提供了几种方便地处理多种不同功能而不会丢失工作的方法:

您可以存储或搁置挂起的更改。

存储变化与搁置非常相似。唯一的区别在于生成和应用补丁的方式。Stas由Git生成,可以在IntelliJ IDEA内部或外部应用。具有搁置更改的修补程序由IntelliJ IDEA生成,也可通过IDE应用。此外,存储涉及所有未提交的更改,而当您将更改添加到工具架时,您可以选择一些本地更改,而不是将它们全部搁置。

您可以在不同的更改列表中保留与不同任务或功能相关的更改。

您可以创建分支以处理不同的不相关功能。

搁置变化# 

搁置暂时存储您尚未提交的挂起更改。这很有用,例如,如果您需要切换到另一个任务,并且您希望将更改设置为稍后处理它们。

使用IntelliJ IDEA,您可以搁置单独的文件和整个更改列表。

搁置后,可根据需要多次更改。

搁置变化# 

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 本地更改”选项卡。

右键单击要放入工具架的文件或更改列表,然后 从上下文菜单中选择“ 搁置更改 ”。

在“ 搁置更改”对话框中,查看已修改文件的列表。

在“ 提交消息”字段中,输入要创建的货架的名称,然后单击“货架 更改”按钮。

您还可以静默搁置更改,而不显示“ 搁置更改”对话框。要执行此操作,请选择要搁置的文件或更改列表,然后单击 工具栏上的“ 搁置静音”图标默默地搁置,或按Ctrl+Alt+H。包含要搁置的更改的更改列表的名称将用作货架名称。

为了避免使用相同名称的多个货架(例如Default),您可以将文件或更改列表从Local Changes选项卡拖到Shelf选项卡,等待一秒直到它被激活,然后编辑新货架释放鼠标按钮时即时命名。

取消更改# 

令人不安的是将推迟的更改从一个架子转移到一个待定的更改列表。可以从视图中过滤掉未删除的更改或从工具架中删除。

在货架的标签的版本控制工具窗口中,选择要取消搁置一个变更或文件。

按Ctrl+Shift+U或从选择的上下文菜单中选择取消搁置。

在打开的“ 取消保护更改”对话框中,在“ 名称”字段中指定要将未经保留的更改还原到的更改列表。您可以从列表中选择现有的更改列表,也可以键入要创建的包含未更改的更改的新更改列表的名称。您可以在“ 注释”字段中输入新更改列表的说明(可选)。

如果要激活新的更改列表,请选择“ 设置活动”选项。否则,当前活动的更改列表仍保持活动状态。

如果希望IntelliJ IDEA 在其停用时保留与新更改列表关联的任务的上下文,并在更改列表变为活动状态时还原上下文,请选择“ 跟踪上下文”选项(有关详细信息,请参阅任务和上下文)。

如果要删除要撤消的更改,请选择“ 从架子中删除已成功应用的文件”选项。未加载的文件将从此工具架中删除,并添加到另一个更改列表并标记为已应用。在通过单击删除图标工具栏或从上下文菜单中选择Clean Already Unshelved明确删除之前,不会完全删除它们。

如果您意外删除了未受控制的文件,则可以从“ 最近删除”节点查看和还原它们。

单击确定。如果修补版本与当前版本之间发生冲突,请按照解决冲突中的说明解决它们 。

您可以静默取消更改,而不显示“ 取消保护更改”对话框。要做到这一点,选择文件或要取消搁置一个变更,并单击取消搁置默默的图标Unhelve Silently图标 工具栏,或按上 Ctrl+Alt+U。未被控制的文件将被移动到活动的待定更改列表。

您还可以拖动从一个文件或者一个变更货架标签的本地更改标签默默取消搁置了。如果按住该Ctrl键拖动它,它将被复制到“ 本地更改”选项卡,而不是从工具架中删除。

恢复未经保留的更改# 

IntelliJ IDEA允许您在必要时重新应用未经保留的更改。所有未取消的更改都可以重复使用,直到通过单击删除未解除的更改工具栏上的图标或从上下文菜单中选择“ 清除已经取消保留”来明确删除它们。

确保已 Show Already Unshelved按钮 启用“ 显示已取消已保留”工具栏选项。

选择要还原的文件或书架。

从选择的上下文菜单中,选择“还原”。

应用外部补丁# 

您可以导入在IntelliJ IDEA内部或外部创建的补丁,并将其作为搁置更改应用。

在货架的标签的版本控制工具窗口中,选择导入修补从上下文菜单中。

在打开的对话框中,选择要应用的修补程序文件。选定的修补程序将作为工具架显示在“工具 架”选项卡中。

使用修补程序选择新添加的工具架,然后 从选择的上下文菜单中选择“ 取消保护更改 ”。

自动搁置基础修订# 

将IntelliJ IDEA配置为始终搁置Git版本控制下的文件的基本修订版可能很有用。

在“ 设置/首选项” 对话框(Ctrl+Alt+S)中,选择“ 版本控制” 架子。

在分布式版本控制系统选项下 选择文件的Shelve基本修订版。

如果启用此选项,则文件的基本修订将保存到将在3向合并期间 使用的工具架(如果应用工具架导致冲突)。如果禁用,IntelliJ IDEA将在项目历史记录中查找基本修订版,这可能需要一段时间; 此外,冲突架所基于的修订可能会丢失(例如,如果由于rebase操作而更改了历史记录)。

更改默认货架位置# 

默认情况下,shelf目录位于项目目录下。但是,您可能需要更改默认的货架位置。这可能很有用,例如,如果您想要在清理工作副本时避免意外删除货架,或者您希望将它们存储在单独的存储库中,以便在您的团队成员之间共享货架。

打开“ 设置” 对话框(Ctrl+Alt+S)并选择“ 版本控制” 左侧的架子节点。

单击“ 更改货架位置”按钮,然后在打开的对话框中指定新位置。

如有必要,请选择“ 将搁架移动到新位置”选项以将现有搁架移动到新目录。

 

藏匿变化# 

有时可能需要还原您的工作副本以匹配HEAD提交,但您不希望丢失已完成的工作。如果您了解到上游更改可能与您正在执行的操作相关,或者您需要进行一些紧急修复,则可能会发生这种情况。

存储涉及记录HEAD提交和工作目录(存储)的当前状态之间的差异。也可以隐藏对索引的更改。

Unstashing涉及将存储的存储应用于分支。

您可以将存储应用于现有分支或在其基础上创建新分支。

存储可以根据需要多次应用于您需要的任何分支,只需 切换到所需的分支即可。请记住:

在一系列提交之后应用存储会导致需要解决的冲突。

您不能将存储应用于“脏”工作副本,即具有未提交更改的工作副本。

将更改保存到存储# 

从主菜单中,选择VCS | Git | 藏匿变化。

在打开的Stash对话框中,选择适当的Git根目录并确保签出了正确的分支。

在“ 消息”字段中,描述您要保存的更改。

要隐藏本地更改并将索引中暂存的更改带到工作树以进行检查和测试,请选择“ 保留索引”选项。

单击“ 创建存储”。

申请藏匿# 

从主菜单中,选择VCS | Git | 解冻变更。

选择要应用存储的Git根目录,并确保签出了正确的分支。

从列表中选择要应用的存储。

如果要检查所选存储中受影响的文件,请单击“ 查看”。

要在应用后删除选定的存储,请选择“ 弹出存储”选项。

要同时应用隐藏的索引修改,请选择“ 恢复索引”选项。

如果要基于所选存储创建新分支而不是将其应用于当前检出的分支,请在“ 新分支”字段中键入该分支的名称。

要删除存储,请在列表中选择它,然后单击“ 删除”。要删除所有藏匿,请单击“ 清除”。

如果您有冲突,此操作可能会失败。发生这种情况是因为冲突存储在索引中,您无法再以原始状态应用更改。

将组更改为不同的更改列表# 

当您处理多个相关功能时,您可能会发现将更改分组到不同的更改列表中非常方便。这种方法有其优点和缺点,而不是使用功能分支来处理多个任务。

优点:

您可以轻松地在不同的逻辑变更集之间切换,并将它们彼此分开提交。

与为相同目的使用分支不同,您可以手头进行所有更改,而无需在分支之间切换,如果您的项目非常大,可能需要一段时间。

测试不同功能如何协同工作很方便。

您可以在构建服务器上远程运行更改列表。

 

缺点:

虽然使用更改列表可能看起来比分支更轻量级,但它并不安全,因为在您提交并推送它们之前,您的更改没有备份。如果您的本地工作副本出现问题,您的所有更改都将丢失,因为它们不属于Git项目历史记录。

不可能对特征进行原子测试。

不可能在同一功能上进行协作。此外,除非您通过电子邮件发送包含更改的修补程序,否则您无法从不同的计算机中做出贡献,这可能不是很方便。

 

所有更改列表都显示在“ 版本控制”工具窗口的“ 本地更改”选项卡中。所有已修改的文件都会自动放入活动更改列表中,这是默认更改列表,除非您创建了另一个并使其处于活动状态。

要创建新的更改列表,请单击添加按钮工具栏上的。

要激活非默认更改列表,请右键单击它并从上下文菜单中选择“ 设置活动更改列表”。

在更改列表之间移动更改# 

选择要移动的文件,然后从上下文菜单中选择“ 移动到另一个更改列表”。

如果要使用要放弃活动更改列表的更改来创建更改列表,请 选择“ 设置活动”选项。

如果希望IntelliJ IDEA记住您的上下文并在此更改列表变为活动状态时在编辑器中重新加载当前打开的文件,请 选择“ 跟踪上下文”选项。

使用功能分支# 

Git中的一个分支代表了一个独立的开发线,因此如果您正在开发一个单独的功能,您希望在准备好分享工作结果并将其集成之前完成并进行测试master,那么在功能分支中执行此功能是最好的解决方案。这样,您可以确保不会将不稳定的代码提交到项目的主代码库,并且可以在必要时轻松切换到其他任务。

优点:

与使用更改列表进行组更改相反,使用功能分支是安全的。在您对Git提交更改后,它们将成为Git项目历史记录的一部分,因此即使您损坏了工作树,也可以通过Git reflog恢复提交 。推送更改后,它们将被备份。

您可以开发并行的非相关功能并以原子方式对其进行测试。

当您在分支中完成开发后,您可以重新排序或压缩提交,以便您的历史记录线性且干净。

您可以轻松地在功能上进行协作,或者从不同的计算机上进行开发。

 

缺点:

在真正大型项目上切换分支可能需要一些时间。

一起测试相关功能并不是很方便。

您必须学习使用功能分支并将更改集成到主代码库中的工作流程。

 

使用功能分支并将更改集成到主代码库中有两种主要方法:

在合并选项

在重订选项

使用merge来集成功能分支中的更改# 

合并选项的主要好处是完全可跟踪性,因为提交合并到主代码库中保留其原始哈希和作者,并且属于一个功能的所有提交可以组合在一起。

此工作流适用于对主代码库提交更改涉及 拉取请求 或分层审批过程的项目,因为现有分支不会以任何方式更改。

这种方法的主要缺点是每次需要合并更改时都会创建无关的合并提交,这会严重污染项目历史记录并使其难以阅读。

为您的独立开发线创建一个分支。

在开发过程中提交您的更改。

将分支推送到远程存储库。这应该用于备份,以便您可以在不同的计算机上进行协作或工作。

当您需要执行与您的功能无关的工作时,请切换到其他分支。

对您的功能进行审核和测试,并进行必要的修复。

当您准备将工作结果集成到主分支(例如master)时,请执行以下操作:

将您的功能分支合并到主代码库中。

删除功能分支。

推。

使用rebase集成功能分支中的更改# 

此选项的主要好处是,您可以获得清晰的项目历史记录,以便其他人阅读和理解。您的日志不包含merge操作产生的不必要的合并提交,您将获得易于导航和搜索的线性历史记录。

在决定采用此工作流程时,您应该记住,rebase在为原始要素分支中的每个提交创建新提交时,重写项目历史记录,因此它们将具有不同的哈希值,这会妨碍可跟踪性。

为您的独立开发线创建一个分支。

在开发过程中经常提交更改。

将分支推送到远程存储库。这应该用于备份,以便您可以在不同的计算机上进行协作或工作。

衍合你的特性分支上 master不时。如果您的功能分支很长,那么这样做才有意义。这对以下内容很有用:

确保你的功能分支,master不要太远。

当您最终将更改集成到主代码库中时,避免解决大量冲突。当你经常变换时,你可以迭代地解决冲突,并且不会因为长时间的差异而挣扎。

加快检查分支,因为分支之间的切换一旦充分发散就会变慢。

重新定位涉及以下步骤:

从远程获取更改,或 将更改拉入 master分支。

将您的分支重新打开 master。

强制将rebase操作结果推送到功能分支。

切换到master需要执行与功能无关的工作时。当您返回功能分支时,执行Checkout和Rebase to Current。

对您的功能进行审核和测试,并进行必要的修复。

功能完成后 执行Interactive Rebase。这允许您重新排序和压缩提交,以使您的功能分支历史看起来漂亮和干净。

当您准备将工作结果集成到主分支(例如master)时,请执行以下操作:

结帐的master分支。

合并你的分支master。由于master没有分歧,Git只会将指针移动到功能分支的最新提交,而不是创建新的合并提交(这称为快进合并)。

删除功能分支。

推。

 

撤消更改#  还原未提交的更改# 

在提交之前,您始终可以撤消在本地完成的更改:

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 本地更改”选项卡。

在活动更改列表中,选择要还原的一个或多个文件,然后从上下文菜单中选择“ 还原 ”,或按Ctrl+Alt+Z。自上次提交以来对所选文件所做的所有更改都将被撤消,并且它们将从“ 本地更改”视图中消失 。

撤消上次提交# 

IntelliJ IDEA允许您撤消当前分支中的最后一次提交(即HEAD):

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 日志”选项卡。

选择当前分支中的最后一个提交,然后从上下文菜单中选择“ 撤消提交 ”。

在打开的对话框中,选择一个更改列表,其中将移动要放弃的更改。您可以从“ 名称”下拉列表中选择现有的更改列表,也可以指定新更改列表的名称(默认情况下使用提交消息)。

如果要使用要放弃活动更改列表的更改来创建更改列表,请 选择“ 设置活动”选项。

如果希望IntelliJ IDEA记住您的上下文并在此更改列表变为活动状态时在编辑器中重新加载当前打开的文件,请 选择“ 跟踪上下文”选项。

如果将提交推送到受保护的分支,即不允许使用force --push的分支 (在Version Control | Git下的Settings / Preferences对话框(Ctrl+Alt+S)中配置受保护的分支),则无法撤消提交 。

还原推送的提交# 

如果您发现已推送的特定提交中存在错误,则可以还原该提交。此操作将导致新提交,该提交会反转您要撤消的提交的效果。因此,保留项目历史记录,因为原始提交保持不变。

在“ 日志”视图中找到要还原的提交,右键单击它,然后从上下文菜单中选择“ 还原 ”。“ 提交更改”对话框将打开,并显示自动生成的提交消息。

如果所选提交包含多个文件,并且您只需要还原其中一些文件,请取消选择您不想触摸的文件。

单击“ 提交”以提交一个更改集,该更改集将更改还原到此特定提交中的选定文件。

将分支重置为特定提交# 

如果您发现一组最近提交中的错误并想要重做该部分,则可以将存储库回滚到特定状态。这是通过将当前分支HEAD重置为指定的提交(如果您不希望在历史记录中反映撤消,则可选地重置索引和工作树)来完成的。

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 日志”选项卡。

选择要将HEAD移动到其上的提交,然后从上下文菜单中选择“将当前分支重置为此处 ”。

在打开的Git Reset对话框中,选择您希望如何更新工作树和索引,然后单击Reset:

Soft:所有提交之后提交的所有更改都将被暂存(即,它们将被移动到Local Changes视图,以便您可以查看它们并在必要时稍后提交)。

混合:将保留所选提交后所做的更改,但不会为提交暂存。

硬:在所选提交之后进行的所有更改都将被丢弃(分阶段和提交)。

保持:在所选提交之后进行的已提交更改将被丢弃,但本地更改将保持不变。

获取文件的先前版本# 

如果您需要还原单个文件而不是丢弃包含对多个文件的更改的整个提交,则可以返回到该文件的特定版本:

在任何视图中选择所需文件(在“ 项目”工具窗口中,在编辑器中,在“ 版本控制”工具窗口的“ 本地更改”选项卡中,等等)。

选择Git | 从主VCS菜单或选择的上下文菜单中显示历史记录。“ 历史记录”选项卡将添加到“ 版本控制”工具窗口,其中显示所选文件的历史记录,并允许您查看和比较其修订版本。

当您确定要回滚的修订版本后,在列表中选择它,然后从上下文菜单中选择“ 获取 ”。

使用标记标记特定提交# 

Git允许您将标记附加到提交以标记项目历史记录中的某些点,以便将来可以引用它们。例如,您可以标记与发布版本对应的提交,而不是创建用于捕获发布快照的分支。

为提交分配标记# 

在“ 日志”视图中找到要标记的提交。右键单击它,然后从上下文菜单中选择“ 新建标记 ”。

输入新标记的名称,然后单击“ 确定”。标签将显示在日志视图中:

标记的提交

 

为注释分配带注释的标记# 

带注释标签的元数据包含创建它们的用户的名称,因此它们允许您检查放置它们的人员。

从主菜单中,选择VCS | Git | 标签

在打开的Tag对话框中,在Git Root下,选择要在其中标记提交的本地存储库的路径,并指定新标记的名称。

在“ 提交”字段中,指定要标记的提交。您可以输入提交哈希,或使用表达式,例如:( 有关详细信息,~ 请参阅Git 提交命名约定)。

在“ 消息”字段中输入一些注释以创建带注释的标记(如果它为空,则将创建常规标记)。

单击创建标记。

如果在“ 日志”工具栏的“ 快速设置”下启用“ 压缩参考视图”选项,则标记名称将隐藏在分支名称后面,并且不可见。

重新分配现有代码# 

如果您在错误的提交上放置了标记,并且想要重新分配它(例如,指示发布版本的提交),请执行以下操作:

从主菜单中,选择VCS | Git | 标记。

在“ 标记”对话框的“ 标记名称”字段中,指定要重新分配的现有标记的名称。

选择“ 强制”选项。

在“ 提交”字段中,指定要移动标记的提交,然后单击“ 创建标记”。

跳转到标记的提交# 

打开“ 版本控制”工具窗口(Alt+9)并切换到“ 日志”选项卡。

单击工具栏上的Go To Hash / Branch / Tag图标图标动作找到svg,或按Ctrl+F。

输入标签名称(代码完成建议您键入时的标签名称),然后按Enter。

查看标记的提交# 

假设您标记了与带标记的发布版本相对应的提交,现在您要在该时间点查看项目的快照。您可以通过签出标记的提交来完成此操作。执行以下操作之一:

找到要签出的标记提交,右键单击它并从上下文菜单中选择 Checkout Revision。

调用分支弹出,单击Checkout Tag或Revision并键入标记名称(IntelliJ IDEA在您键入时提供匹配标记和修订的列表)。

请注意,此操作会导致分离的HEAD,这意味着您不再处于任何分支中。您可以使用此快照进行检查和实验。但是,如果要在此快照之上提交更改,则需要创建分支。

删除标签# 

找到标记的提交,右键单击它并选择Tag | 从上下文菜单中删除。

 

编辑项目历史# 

除非绝对必要,否则请避免修改具有多个贡献者的远程分支的历史记录,例如,如果您不小心推送了一些敏感数据。

Git允许您编辑项目历史记录。当您正在处理功能分支并想要将其清理并在与其他人共享之前使其看起来像您想要的方式时,这非常有用。例如,您可以编辑提交消息,将与相同功能相关的较小提交压缩在一起,或者将包含无关更改的提交拆分为单独的提交,将更改添加到先前的提交,依此类推。

如果您修改了其历史记录的分支位于远程存储库中,则会拒绝推送此类修改以防止数据丢失,因此您必须强制推送 更改。

您无法修改不允许的受保护分支的历史记录 (在“ 版本控制”|“Git”下push --force的“设置/首选项”对话框(Ctrl+Alt+S)中配置受保护的分支。

 

编辑提交消息# 

如果您需要更改的唯一内容是提交消息,则可以在推送此提交之前对其进行编辑。

在“ 日志”视图中右键单击要编辑其消息的提交,然后从上下文菜单中选择“重 定位 ”,或按F2。

在打开的对话框中,输入新的提交消息,然后单击“ 确定”。

修改先前的提交# 

有时您可能提前过早而忘记添加一些文件,或者在最后一次提交时发现错误,而不创建单独的提交。

您可以使用Amend commit选项将 上次更改附加到上一次提交。因此,您最终只能使用一个提交而不是两个不同的提交。

在“ 本地更改”视图中选择要添加到上一个提交的更改,然后单击提交按钮工具栏或按Ctrl+K。

在“ 提交更改”对话框中,在提交更改之前,在右侧选择“ 修改提交”选项。

修改任何先前的提交# 

如果您需要将更改添加到任何先前的提交而不是单独提交它们,则可以使用fixup或squash操作来执行此 操作。这两个命令都会 对所选提交附加阶段性更改,但处理提交消息的方式不同:

squash 将新提交消息添加到原始提交

fixup 丢弃新的提交消息,只保留原始提交的消息

 

这两个命令都需要rebase,因为它们会更改提交哈希值。

进行要附加到任何早期提交的更改(它们将显示在“ 本地更改”视图中)。

在“ 日志”视图中,右键单击要使用本地更改修改的提交,然后从上下文菜单中选择“ Fixup”或“ Squash Into ”。

如果您选择压缩更改,则在必要时修改提交消息。

单击Commit按钮上的箭头,然后选择Commit and Rebase。

通过执行交互式rebase编辑项目历史记录# 

Git允许您编辑项目历史记录,以便通过执行交互式rebase使其变得线性和有意义。这允许您在将更改从 功能分支集成到另一个分支之前,通过更改单个提交,更改其顺序,将提交压缩为一个,跳过包含无关更改的提交等来清理提交历史记录。

编辑当前分支的历史记录# 

IntelliJ IDEA允许您在将更改应用于其他分支之前编辑当前分支中的一系列最近提交。

在“ 版本控制”工具窗口的“ 日志”选项卡中,选择要编辑的一系列提交中最早的提交,右键单击它并从此处选择“ 交互式重新生成”。

该交互式衍合将显示对话框包含当前所有分支即提交作了选择后提交的名单。

如果需要更改应用提交的顺序,请使用 向上箭头向下箭头按钮。

使用“ 操作”列表将以下操作应用于提交(可用于Alt+Up/Down选择操作):

选择:按原样应用所选提交。

编辑:选择在应用之前编辑受此提交影响的文件。

跳过:忽略所选的提交,因此不会应用这些更改。

壁球:选择将所选提交与前一个提交相结合。两个提交的提交消息将合并,因此此操作将反映在分支历史记录中。如有必要,更改提交顺序,以便要添加更改的提交是列表中的前一个提交。

Reword:选择此选项可在应用之前编辑提交消息。

修复:选择此选项可将选定的提交与前一个提交相结合。修复提交的提交消息将被丢弃,因此此更改将在分支历史记录中不可见。如有必要,更改提交顺序,以便要添加更改的提交是列表中的上一个。

编辑分支历史记录并将其集成到另一个分支中# 

IntelliJ IDEA允许您在应用更改之前,在另一个分支的顶部重新绑定分支并编辑源分支历史记录。

从主菜单中选择VCS | Git | Rebase。

在“ 分支”字段中选择要重新绑定的分支,在“ Onto”字段中选择目标分支。

在“ 发件人”字段中,选择要从中将所选分支应用于新基础的提交。

确保互动选项被选中,并单击再次基于。

该交互式衍合将显示对话框包含当前所有分支即提交作了选择后提交的名单。

如果需要更改应用提交的顺序,请使用 向上箭头向下箭头按钮。

使用“ 操作”列表将以下操作应用于提交(可用于Alt+Up/Down选择操作):

选择:按原样应用所选提交。

编辑:选择在应用之前编辑受此提交影响的文件。

跳过:忽略所选的提交,因此不会应用这些更改。

壁球:选择将所选提交与前一个提交相结合。两个提交的提交消息将合并,因此此操作将反映在分支历史记录中。如有必要,更改提交顺序,以便要添加更改的提交是列表中的前一个提交。

Reword:选择此选项可在应用之前编辑提交消息。

修复:选择此选项可将选定的提交与前一个提交相结合。修复提交的提交消息将被丢弃,因此此更改将在分支历史记录中不可见。如有必要,更改提交顺序,以便要添加更改的提交是列表中的上一个。

 

GitHub # 

IntelliJ IDEA允许您直接从IDE 管理GitHub上托管的项目: 克隆存储库, 共享项目, 创建分支, 通过要点共享代码, 创建拉取请求以及 查看传入的拉取请求。

注册GitHub帐户# 

为了能够从GitHub上托管的存储库中检索数据数据,或共享您的项目,您需要在IntelliJ IDEA中注册您的GitHub帐户。

如果您不想在每次与远程同步时指定yor凭据或推送提交,则可以配置IntelliJ IDEA以保存您的帐户信息(请参阅配置密码策略)。

注册现有帐户# 

在Settings / Preferences 对话框(Ctrl+Alt+S)中,选择 Version Control | 左侧窗格中的GitHub。

单击添加帐户。

在打开的对话框中,指定您的GitHub服务器URL(github.com或企业实例)。

执行以下操作之一:

如果您已有令牌,请单击“ 输入令牌”链接并将其粘贴到那里。

如果要获取新令牌,请输入您的登录名和密码。如果启用了双因素身份验证,系统将要求您输入将通过SMS或移动应用程序发送给您的代码。

令牌必须在您的帐户权限中启用repo和gist作用域(请参阅了解作用域)。

创建一个新的GitHub帐户# 

在Settings / Preferences 对话框(Ctrl+Alt+S)中,选择 Version Control | 左侧窗格中的GitHub。

单击“ 添加帐户”,然后在打开的对话框中单击“ 注册Github”。

在打开的注册GitHub页面上注册您的帐户。

返回IntelliJ IDEA设置并指定您的凭据。

管理多个帐户# 

您可以在IntelliJ IDEA中使用多个GitHub帐户:例如,用于处理开源项目的个人帐户以及用于主要工作的公司帐户。

在Settings / Preferences 对话框(Ctrl+Alt+S)中,选择 Version Control | 左侧窗格中的GitHub。

使用该添加图标按钮可根据需要添加任意数量的帐户。

(可选)要将帐户设置为当前项目的默认帐户,请选择该帐户并单击 复选标记图标。如果设置了默认帐户,IntelliJ IDEA将不会要求您在GitHub上共享项目时选择要使用的帐户 ,重新 分叉, 创建拉取请求或创建要点。

管理GitHub上托管的项目#  查看项目(克隆)# 

您可以直接从IntelliJ IDEA克隆要贡献的存储库,并基于它创建新项目。

从主菜单中,选择VCS | 从版本控制检出| Git。

在“ 克隆存储库”对话框中,指定要克隆的存储库的URL。您可以从与您的帐户关联的所有GitHub项目列表以及您的帐户所属的组织中选择一个存储库。

在“ 目录”字段中,输入将在其中创建本地Git存储库的文件夹的路径。

单击克隆。如果要基于这些源创建项目,请在确认对话框中单击“ 是 ”。IntelliJ IDEA将自动将Git根映射设置为项目根目录。

在GitHub上分享一个项目# 

您可以为正在本地开发的项目添加远程GitHub存储库,以便其他人可以查看或贡献它。

打开要共享的项目。

从主菜单中,选择VCS | 导入版本控制| 在GitHub上分享项目。

如果您已在IntelliJ IDEA中注册了GitHub帐户,则将使用这些凭据建立连接。

如果您尚未在IntelliJ IDEA中注册帐户,则会打开“ 登录GitHub”对话框。指定您的访问令牌或使用您的登录名和密码申请新令牌。

建立与GitHub的连接后,将打开GitHub上的共享项目对话框。指定新存储库名称,远程名称,然后输入项目描述。

如果您不希望允许其他GitHub用户对您的存储库进行公共访问,则 可以选择“ 私有”选项(请注意,此选项对于免费帐户不可用)。

单击“ 共享”以启动新存储库并将项目源上载到该存储库。

跳转到文件的GitHub版本# 

您可以从IntelliJ IDEA跳转到文件的GitHub版本。IntelliJ IDEA检测当前处于活动状态的分支以及文件的最新版本,并在Web浏览器的相应提交中打开所选文件的GitHub副本。如果从编辑器打开GitHub文件版本,该文件也将自动滚动到当前行。

在编辑器或项目视图中选择一个文件,然后从上下文菜单或 弹出窗口中选择 在GitHub上打开Ctrl+Shift+A。该文件的远程版本将在浏览器中打开。

如果文件指向多个远程,则系统将提示您选择相应的存储库。

 

管理GitHub上托管的项目#  查看项目(克隆)# 

您可以直接从IntelliJ IDEA克隆要贡献的存储库,并基于它创建新项目。

从主菜单中,选择VCS | 从版本控制检出| Git。

在“ 克隆存储库”对话框中,指定要克隆的存储库的URL。您可以从与您的帐户关联的所有GitHub项目列表以及您的帐户所属的组织中选择一个存储库。

在“ 目录”字段中,输入将在其中创建本地Git存储库的文件夹的路径。

单击克隆。如果要基于这些源创建项目,请在确认对话框中单击“ 是 ”。IntelliJ IDEA将自动将Git根映射设置为项目根目录。

在GitHub上分享一个项目# 

您可以为正在本地开发的项目添加远程GitHub存储库,以便其他人可以查看或贡献它。

打开要共享的项目。

从主菜单中,选择VCS | 导入版本控制| 在GitHub上分享项目。

如果您已在IntelliJ IDEA中注册了GitHub帐户,则将使用这些凭据建立连接。

如果您尚未在IntelliJ IDEA中注册帐户,则会打开“ 登录GitHub”对话框。指定您的访问令牌或使用您的登录名和密码申请新令牌。

建立与GitHub的连接后,将打开GitHub上的共享项目对话框。指定新存储库名称,远程名称,然后输入项目描述。

如果您不希望允许其他GitHub用户对您的存储库进行公共访问,则 可以选择“ 私有”选项(请注意,此选项对于免费帐户不可用)。

单击“ 共享”以启动新存储库并将项目源上载到该存储库。

跳转到文件的GitHub版本# 

您可以从IntelliJ IDEA跳转到文件的GitHub版本。IntelliJ IDEA检测当前处于活动状态的分支以及文件的最新版本,并在Web浏览器的相应提交中打开所选文件的GitHub副本。如果从编辑器打开GitHub文件版本,该文件也将自动滚动到当前行。

在编辑器或项目视图中选择一个文件,然后从上下文菜单或 弹出窗口中选择 在GitHub上打开Ctrl+Shift+A。该文件的远程版本将在浏览器中打开。

如果文件指向多个远程,则系统将提示您选择相应的存储库。

为项目做贡献# 

如果您想要贡献给GitHub上托管的项目并且无法直接推送到该项目,请遵循以下工作流程:

创建要贡献的项目的分支。

克隆此fork以创建本地存储库。

更改原始项目的副本,提交并 推送它们。

当你准备共享你的工作成果,重订在主分支的原始项目当前HEAD你的叉子。这需要确保您的更改不会与创建fork后推送的新提交冲突。

创建拉取请求以建议您对原始项目的更改。

分叉项目# 

一叉就是你的一个GitHub的仓库,使您可以修改代码,而不会影响原项目的副本。

创建一个fork # 

打开要在GitHub上分叉的项目,然后单击 叉图标

将在您的帐户下创建原始项目的副本。要对此项目进行更改,您需要克隆它以创建本地存储库。

重新启动一个前叉# 

从主菜单中,选择VCS | Git | 重新启动我的GitHub fork。您的fork将被重新定位到您创建fork的原始项目的master分支中的HEAD提交。

 

创建拉取请求# 

Pull请求用于开源项目或某些公司工作流程中,以管理来自贡献者的更改,并在合并此类更改之前启动代码审查。

通过创建拉取请求,您可以告诉其他人您已经推送到GitHub存储库的更改,以便原始存储库的维护者可以检查您的更改,讨论它们并将它们集成到基本分支中。

从主菜单中,选择VCS | Git | 创建拉取请求。将 打开“ 创建拉取请求”对话框

在Base Fork下,指定要将拉取请求发送到的项目。从IntelliJ IDEA填充的列表中选择存储库,或单击Select Other Fork。

在“ 基本分支”下,指定目标项目中将应用更改的分支。单击“ 显示差异” 以查看将包含在拉取请求中的提交列表。要查看提交的详细信息,请选择它并切换到“ 版本控制”工具窗口的“ 日志”选项卡,您可以在其中查看所选提交,视图差异等中包含的文件列表。

在“ 标题”字段中指定拉取请求的名称,并可选择提供要通过请求应用的更改的说明。

管理传入拉取请求# 

如果您是项目维护者并且为项目配置了GitHub远程,则可以直接从IntelliJ IDEA查看传入的拉取请求:从主菜单中选择VCS | Git | 查看请求。

GitHub Pull请求羊毛窗口

使用GitHub Pull Requests工具窗口:

按州,作者,受让人和日期过滤请求:

跳转到GitHub上的pull请求:选择一个pull请求,然后从上下文菜单中选择在GitHub上打开。

查看建议的更改与基本修订之间的差异:在右窗格中选择一个文件,然后按 Ctrl+D或单击差异图标

根据传入的更改创建本地分支:选择拉取请求,然后从上下文菜单中选择“ 创建新的本地分支 ”。

 

与gists共享代码# 

如果您想要贡献给GitHub上托管的项目并且无法直接推送到该项目,请遵循以下工作流程: 使用Gists可以共享代码片段,整个文件甚至应用程序。在运行,调试或测试代码时,您还可以使用gists来保存和共享控制台输出。

每个要点都是一个可以被其他人克隆或 分叉的存储库。

创建一个要点# 

在编辑器中选择代码片段,或在“ 项目”工具窗口中选择文件和文件夹。要将控制台输出保存到要点,请右键单击包含该输出的工具窗口或选项卡中的任意位置。

在选择的上下文菜单中,选择Create Gist。

在Create Gist对话框中,在Filename下指定gist的名称,然后输入要发布的代码的描述。

选择“ 秘密”选项以创建秘密要点。秘密要点无法搜索,也不会出现在Discover中。它们只能用于您自己的目的,因为您无法共享它们。

如果要创建公共要点,请确保取消选择此选项。公共要塞是可搜索的,它们出现在Discover中,人们可以浏览新出现的要点。如果您希望其他人能够查找和查看您的代码,请使用公共要点。

创建要点后,您无法将其从秘密转换为公共,反之亦然。

如果要在默认浏览器中打开新创建的要点,请选择“ 在浏览器中打开” 选项,然后单击“ 确定”。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3