# 使用补丁

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

与其提交本地更改，您可以将它们放在  `.patch`  文件中，稍后应用到您的源代码中，通过电子邮件发送等等。 使用补丁是一种方便的机制，旨在无需将更改签入 Git 仓库即可共享更改。

Procedure: 从未提交的更改中创建补丁

1. 在   提交   工具窗口（ `Alt+0` (Windows), `⌘ 0` (macOS), `⌘ 0` (IntelliJ IDEA Classic (macOS)), `⌘ 0` (macOS System Shortcuts), `Alt+0` (XWin), `Alt+0` (GNOME), `Alt+0` (KDE), `Alt+0` (Emacs), `Alt+0` (Sublime Text), `⌘ 0` (Sublime Text (macOS)), `Alt+0` (Visual Studio), `Alt+0` (Visual Studio (macOS)), `Alt+0` (NetBeans), `Alt+0` (Eclipse), `⌘ 0` (Eclipse (macOS))）中，选择要包含在补丁中的文件或更改列表，然后从上下文菜单中选择   从本地更改创建补丁  。

2. 在打开的对话框中，确保已选择要包含在补丁中的所有更改，输入提交注释（它将用作补丁文件名称），然后点击   创建补丁  。

3. 在   补丁文件设置   对话框中，指定以下详细信息：

* 补丁文件位置：选择默认位置，或者如果不想将补丁保存到文件，请选择 到剪贴板 选项。

* 基路径：指定补丁文件中各路径所相对于的路径。 通常，这是您的项目目录，但在某些情况下您可能希望使用相对路径，例如，已修改的文件存储在您的 Git 仓库中时。

* 反向补丁：如果您想创建一个还原您所做更改的补丁，请选择此选项。

* 编码：从下拉列表中为补丁文件选择编码。

如果不需要将补丁保存到文件（例如，想改为通过电子邮件发送），请在   提交   工具窗口 ( `Alt+0` (Windows), `⌘ 0` (macOS), `⌘ 0` (IntelliJ IDEA Classic (macOS)), `⌘ 0` (macOS System Shortcuts), `Alt+0` (XWin), `Alt+0` (GNOME), `Alt+0` (KDE), `Alt+0` (Emacs), `Alt+0` (Sublime Text), `⌘ 0` (Sublime Text (macOS)), `Alt+0` (Visual Studio), `Alt+0` (Visual Studio (macOS)), `Alt+0` (NetBeans), `Alt+0` (Eclipse), `⌘ 0` (Eclipse (macOS)) ) 中右键点击所需文件，然后从上下文菜单中选择   以补丁形式复制到剪贴板  。

Procedure: 从整个提交中创建补丁

1. 在   日志  选项卡的   Git  工具窗口 `Alt+9` (Windows), `⌘ 9` (macOS), `⌘ 9` (IntelliJ IDEA Classic (macOS)), `⌘ 9` (macOS System Shortcuts), `Alt+9` (XWin), `Alt+9` (GNOME), `Alt+9` (KDE), `Alt+9` (Emacs), `Alt+9` (Sublime Text), `⌘ 9` (Sublime Text (macOS)), `Alt+9` (Visual Studio), `⌘ 9` (Visual Studio (macOS)), `Alt+9` (NetBeans), `Alt+9` (Eclipse), `⌘ 9` (Eclipse (macOS))中，找到包含您想要包含在补丁中的更改的提交，并从上下文菜单中选择   创建补丁  。

2. 在   补丁文件设置   对话框中，指定以下详细信息：

* 补丁文件位置：选择默认位置，或者如果不想将补丁保存到文件，请选择 到剪贴板 选项。

* 基路径：指定补丁文件中各路径所相对于的路径。 通常，这是您的项目目录，但在某些情况下您可能希望使用相对路径，例如，已修改的文件存储在您的 Git 仓库中时。

* 反向补丁：如果您想创建一个还原您所做更改的补丁，请选择此选项。

* 编码：从下拉列表中为补丁文件选择编码。

Procedure: 从文件创建补丁

1. 在任意视图中选择所需文件（   项目   工具窗口（ `Alt+1` (Windows), `⌘ 1` (macOS), `⌘ 1` (IntelliJ IDEA Classic (macOS)), `⌘ 1` (macOS System Shortcuts), `Alt+1` (XWin), `Alt+1` (GNOME), `Alt+1` (KDE), `Alt+1` (Emacs), `Alt+1` (Sublime Text), `⌘ 1` (Sublime Text (macOS)), `Ctrl+Alt+L` (Visual Studio), `⌘ ⌥ L` (Visual Studio (macOS)), `Ctrl+1` (NetBeans), `Alt+1` (Eclipse), `Alt+1` (Eclipse (macOS))）、编辑器、   提交   窗口等）。

2. 从主菜单中选择   Git | 选定文件 | 显示历史  ，或从所选内容的上下文菜单中选择   Git | 显示历史  。   历史记录   选项卡已添加到   Git   工具窗口中，显示所选文件的历史记录，并允许您查看和比较其修订版本。

3. 右键点击某个修订，然后从上下文菜单中选择   创建补丁  。

Procedure: 应用补丁

1. 在主菜单中，选择：

* `Git | 补丁 | 应用补丁` 以选择已保存的 `.patch` 文件。

* `Git | 补丁 | 从剪贴板应用补丁` 如果已复制补丁文件的内容。 例如，当您通过电子邮件收到补丁且不想保存它时，这非常方便。 对于 [Git 格式](https://git-scm.com/docs/git-format-patch)补丁，IntelliJ IDEA 会提取提交消息和作者，并在 提交 工具窗口（ `Alt+0` (Windows), `⌘ 0` (macOS), `⌘ 0` (IntelliJ IDEA Classic (macOS)), `⌘ 0` (macOS System Shortcuts), `Alt+0` (XWin), `Alt+0` (GNOME), `Alt+0` (KDE), `Alt+0` (Emacs), `Alt+0` (Sublime Text), `⌘ 0` (Sublime Text (macOS)), `Alt+0` (Visual Studio), `Alt+0` (Visual Studio (macOS)), `Alt+0` (NetBeans), `Alt+0` (Eclipse), `⌘ 0` (Eclipse (macOS))）中自动填充相应字段。

2. 在打开的   应用补丁  对话框中，指定您要应用的   .patch  文件的路径。

> **Tip:**
> 您可以将文件或电子邮件附件拖动到编辑器中的任何位置。

3. 如果源代码在创建补丁后被编辑，可能会出现冲突。 要检查您的补丁是否可以无冲突地应用，请点击   显示差异   ![显示差异图标](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.vcs.diff.svg) `Ctrl+D` (Windows), `⌘ D` (macOS), `⌘ D` (IntelliJ IDEA Classic (macOS)), `⌘ D` (macOS System Shortcuts), `Ctrl+D` (XWin), `Ctrl+D` (GNOME), `Ctrl+D` (KDE), `Ctrl+D` (Emacs), `Ctrl+D` (Sublime Text), `⌘ D` (Sublime Text (macOS)), `Ctrl+D` (Visual Studio), `⌘ D` (Visual Studio (macOS)), `Ctrl+D` (NetBeans), `Ctrl+D` (Eclipse), `⌘ D` (Eclipse (macOS))。 如果存在冲突，相应的行将以红色高亮显示。

4. 如有必要，点击 ![](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.nodes.copyOfFolder.svg)   更改目录路径   并选择：

* 基础目录映射 ：指定一个目录，补丁文件中的文件名称将相对于该目录进行解释。 您可以将基础目录映射到单个文件、目录或选择项。

* 移除前导目录 ：将更改应用于补丁中指定目录之外的文件。 点击此按钮可移除目标文件路径中的一个斜杠。 点击按钮并根据需要删除的顶级目录次数执行操作。 删除斜杠的数量以方括号表示。

* 删除所有前导目录 ：一键删除所有前导目录并将补丁应用到基目录中指定名称的文件。

* 恢复前导目录 ：撤销上一个 移除前导目录 操作。 点击按钮恢复之前剥离的任意数量的前导目录。

* 恢复所有前导目录 ：撤销 删除所有前导目录 操作。

5. 请选择您想要应用补丁的更改列表，或者在   名称  栏中指定一个新更改列表的名称，并输入对此更改列表的注释（可选）。

6. 如果您想使此变更列表生效，请选择   设置为活动  选项。

7. 如果希望 IntelliJ IDEA 在停用时保存与新更改列表关联的任务的  上下文 ，并在该更改列表变为活动时恢复上下文，请选择   跟踪上下文   选项（有关详细信息，请参阅 [任务和上下文](managing-tasks-and-context.html)）。

8. 如果从剪贴板应用补丁，可以选择   分析并即时应用剪贴板中的补丁   选项，让 IntelliJ IDEA 自动检测剪贴板内容中的补丁并建议应用。

9. 如果您希望在应用补丁前将其移动到临时存储（搁置），请点击   导入到书架  （有关更多信息，请参阅 [搁置或储存更改](shelving-and-unshelving-changes.html)）。 否则，点击   OK  。

