彩票走势图

java开发工具IntelliJ IDEA中编辑 Git 项目历史教程

翻译|使用教程|编辑:董玉霞|2022-09-13 11:58:52.630|阅读 130 次

概述:在IntelliJ IDEA 中,Git 允许你编辑你的项目历史。当您正在处理功能分支并希望在与他人共享之前对其进行清理并使其看起来像您想要的方式时,这很有用。例如,您可以编辑提交消息,将与相同功能相关的较小提交压缩在一起,或者将包含不相关更改的提交拆分为单独的提交,将更改添加到先前的提交等等。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

IntelliJ IDEA 中,Git 允许你编辑你的项目历史。当您正在处理功能分支并希望在与他人共享之前对其进行清理并使其看起来像您想要的方式时,这很有用。例如,您可以编辑提交消息,将与相同功能相关的较小提交压缩在一起,或者将包含不相关更改的提交拆分为单独的提交,将更改添加到先前的提交等等。

IntelliJ IDEA官方正版下载

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

将重写分支历史的修改推送到远程存储库将被拒绝以防止数据丢失,因此您将不得不强制推送您的更改。

您不能修改不允许的受保护分支的历史记录(在 IDE 设置的版本控制 | Git页面中配置受保护分支。请注意,如果分支在 GitHub 上标记为受保护,IntelliJ IDEA 会自动将其标记为受保护一探究竟。push --force Ctrl+Alt+S

此外,对于当前签出的分支中未包含的提交,您无法执行修改分支历史记录的操作。

编辑提交消息

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

  1. 在Git工具窗口 的Log选项卡中 右键单击要编辑其消息的提交, 然后从上下文菜单中选择Edit Commit Message ,或按Alt+9 F2。
  2. 在打开的对话框中,输入新的提交消息并单击OK。
修改之前的提交

有时您可能提交得太早而忘记添加一些文件,或者在最后一次提交中注意到您想要修复而不创建单独提交的错误。

您可以通过使用将分阶段更改附加到先前提交的修改提交选项来执行此操作。结果,您最终得到一个提交而不是两个不同的提交。

  1. 在“提交工具”窗口Alt+0中,选择包含要添加到上一次提交的更改的已修改文件。
  2. 选择Amend复选框,使Commit按钮变为Amend Commit并单击它。
修改任何较早的提交

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

  • squash将新的提交消息添加到原始提交
  • fixup丢弃新的提交消息,只留下来自原始提交的消息
  1. 在“提交工具”窗口Alt+0中,选择包含要附加到较早提交的更改的已修改文件。
  2. 在 Git工具窗口 的Log选项卡中 ,右键单击要使用本地更改修改的提交,然后从上下文菜单中选择Fixup或Squash Into 。Alt+9
  3. 如果您选择压缩更改,如有必要,请修改提交消息。
  4. 单击Commit按钮上的箭头并选择Commit and Rebase。
Squash 提交

如果您需要合并与相同功能相关的任何两个提交,您可以将它们压缩为一个,以便更清晰的分支历史记录。

  1. 在 Git工具窗口 的Log选项卡中, 选择要合并为一个的提交,然后从上下文菜单中选择Squash Commits 。Alt+9
  2. 在打开的对话框中,编辑提交消息(默认情况下,它包含来自两个提交的消息)并单击OK。
  3. Ctrl+Shift+K将更改推送到远程分支。
删除提交

您可以放弃当前分支中的推送提交,而无需创建恢复更改的额外提交。

  • 在Log视图中选择要丢弃的提交,然后从上下文菜单中选择Drop Commit 。
通过执行交互式变基来编辑项目历史

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

编辑当前分支的历史

IntelliJ IDEA 允许您在将更改应用到其他分支之前编辑当前分支中的提交历史记录。

  1. 打开 Git工具窗口 Alt+9并切换到日志选项卡。
  2. 过滤日志,使其仅显示来自当前分支的提交:

    java开发工具idea

  3. 选择要编辑的一系列提交中最旧的提交,右键单击它并选择Interactively Rebase from Here。
  4. 将显示Interactive Rebase对话框,其中包含当前分支中在选定提交之后进行的所有提交的列表:

    java开发工具idea

    如果“从此处交互式变基”选项被禁用,这可能是由于以下原因之一:

    • 选定的提交有几个父母
    • 选定的提交不在当前分支中
    • 选定的提交被推送到受保护的分支
    要确定原因,请将操作悬停在上下文菜单中并在状态栏中查找消息:

    java开发工具idea

      您可以对分支历史记录执行以下更改:

      1. 更改应用提交的顺序:使用向上箭头和向下箭头按钮在列表中上下移动提交。
      2. 选择一个提交:这是所有提交的默认状态。如果您需要撤消已对提交执行的操作,请单击Pick 应用操作回滚以便按原样应用此提交。
      3. 编辑:单击停止以编辑 暂停按钮,这样当您启动变基时,您会在此提交处停止以便能够对其进行编辑。
      4. 当 rebase 在提交时停止时,IntelliJ IDEA 窗口的右下角会弹出一条通知,让您继续或中止 rebase:
      5. java开发工具idea

         您可以在继续 rebase 之前使用上下文操作(例如Revert、Undo、Amend等)修改此提交。如果您不执行任何操作,则将按原样应用此提交。

        如果您已关闭通知,请从主菜单中选择Git | 继续变基以恢复它。

        • 改写提交消息:单击改写或双击提交并在打开的迷你编辑器中编辑文本。
        • 将两个提交合并为一个:选择要合并到前一个提交中的提交,然后单击Squash或Squash按钮旁边的箭头,然后单击Fixup。
        • 如果您单击Squash,默认情况下来自两个提交的消息将被合并,因此如果您不修改生成的提交消息,此操作将反映在分支历史记录中。

          如果单击Fixup,则 fixup 提交的提交消息将被丢弃,因此此更改将在分支历史记录中不可见。

          在这两种情况下,您都可以在应用这些操作之一时打开的迷你编辑器中编辑提交消息。

        • Ignore a commit:单击Drop以便不应用来自所选提交的更改。
        • 撤消所有更改:单击重置以放弃您已应用于提交的所有操作。

        因此,Rebase Commits对话框会显示一个图表,说明您已应用于分支中的提交的所有操作,以便您可以在开始 rebase 之前查看它们:

        java开发工具idea

      6. 单击开始变基。
      编辑一个分支历史并将其集成到另一个分支中

      IntelliJ IDEA 允许您在应用更改之前在另一个分支之上重新设置一个分支并编辑源分支历史记录。

      1. 从主菜单中选择 Git | 变基:
      2. java开发工具idea

      3. 单击修改选项并选择--interactive。
      4. 从列表中,选择要将当前分支变基的目标分支:
      5. java开发工具idea

      6. 如果您需要从特定提交开始重新设置源分支而不是重新设置整个分支,请单击修改选项并选择--onto。在源分支字段中,输入您要将当前分支应用到新基础的提交的哈希值:
      7. java开发工具idea

        要复制提交哈希,请在Log中选择它,右键单击它并选择Copy Revision Number。

      8. 如果您要变基的分支当前未检出,请单击Modify options,单击Select another branch to rebase,然后从出现的列表中选择一个分支:
      9. java开发工具idea

        IntelliJ IDEA 将在开始 rebase 操作之前检查此分支。

      10. 如果要对分支中可访问的所有提交进行变基,请单击修改选项并选择--root。
      11. 如果您需要保留空提交,即不会更改其父项的任何内容的提交,请单击修改选项并选择--keep-empty(有关此选项的更多信息,请参阅git-rebase)。
      12. 单击变基。
      13. 将显示Interactive Rebase对话框,其中包含当前分支中在选定提交之后进行的所有提交的列表。 

        java开发工具idea

      14. 您可以对分支历史记录执行以下更改:
        • 更改应用提交的顺序:使用向上箭头和向下箭头按钮在列表中上下移动提交。
        • 选择一个提交:这是所有提交的默认状态。如果您需要撤消已对提交执行的操作,请单击Pick 应用操作回滚以便按原样应用此提交。
        • 编辑:单击停止以编辑 暂停按钮,这样当您启动变基时,您会在此提交处停止以便能够对其进行编辑。
        • 当 rebase 在提交时停止时,IntelliJ IDEA 窗口的右下角会弹出一条通知,让您继续或中止 rebase: 

          java开发工具idea

          您可以在继续 rebase 之前使用上下文操作(例如Revert、Undo、Amend等)修改此提交。如果您不执行任何操作,则将按原样应用此提交。 

          如果您已关闭通知,请从主菜单中选择Git | 继续变基以恢复它。

        • 改写提交消息:单击改写或双击提交并在打开的迷你编辑器中编辑文本。
        • 将两个提交合并为一个:选择要合并到前一个提交中的提交,然后单击Squash或Squash按钮旁边的箭头,然后单击Fixup。
        •  如果您单击Squash,默认情况下来自两个提交的消息将被合并,因此如果您不修改生成的提交消息,此操作将反映在分支历史记录中。

          如果单击Fixup,则 fixup 提交的提交消息将被丢弃,因此此更改将在分支历史记录中不可见。 

          在这两种情况下,您都可以在应用这些操作之一时打开的迷你编辑器中编辑提交消息。

        • Ignore a commit:单击Drop以便不应用来自所选提交的更改。
        • 撤消所有更改:单击重置以放弃您已应用于提交的所有操作。

        因此,Rebase Commits对话框会显示一个图表,说明您已应用于分支中的提交的所有操作,以便您可以在开始 rebase 之前查看它们:

        java开发工具idea

      15. 单击开始变基。

      重要通知:接厂商相关通知,JetBrains 将于 2022 年 10 月 1 日起全面上调 IDE、. NET 工具 和 All Products Pack 订阅产品价格。

      本次教程介绍了在IDEA中编辑 Git 项目历史的相关内容。

      想要了解IntelliJ IDEA价格的朋友,欢迎咨询

      IntelliJ IDEA技术交流群:786598704      欢迎进群一起讨论


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP