IntelliJ IDEA 从差异创建补丁

IntelliJ IDEA create patch from difference

我有 IntelliJ IDEA Ultimate 2018.2.3。 我正在尝试根据 IDE 中的差异(与...比较)创建一个补丁,但我找不到这样做的按钮。我已经在 branch_A 上进行了多次提交。我不需要从本地更改创建补丁,我需要从与另一个分支的差异创建补丁。

在git中很简单git diff branch_A branch_B >> diff.patch

在IDE有什么办法可以实现吗?

您可以在提交更改对话框中创建补丁。
1. 转到版本控制中的本地更改并按 ctrl+k 调用提交对话框
2. 填写必填字段,而不是按提交按钮,提交旁边有一个下拉箭头,您可以 select 创建补丁。

https://www.jetbrains.com/help/idea/commit-and-push-changes.html#invoke-commit-dialog

以下是在 IntelliJ 2020.1.3 上的操作方法

  1. 提交您在当前分支中的所有工作(例如,my-committed-branch
  2. 检查要针对其生成差异作为补丁的分支(例如,master)
  3. 从基础创建一个新分支,即 master my-uncommitted-branch
  4. 转到 VCS -> Git -> 从分支签出文件并选择 my-committed-branch。它将显示您已更改的文件列表。 Select 全部,然后单击确定。您现在会将所有更改作为未提交的更改
  5. 现在 select VCS -> 从本地更改创建补丁

在 IntelliJ IDEA 2020.2 中,我可以这样做:

  1. 确保您事先没有当前的本地更改:提交它们或将它们隐藏起来。
  2. VCS -> Git -> 分支 -> [select 要比较的分支] -> 用工作树显示差异
  3. [在打开的差异视图中 select 需要的文件] -> [鼠标右键] -> 从分支中获取
  4. VCS -> 从本地更改创建补丁...

使用 VCS -> Git -> 使用 Squash commit 选项合并更改,将您的分支与对源分支的更改合并。合并后不会完成任何提交,但您会在单个更改列表中看到更改。您可以用鼠标右键单击此更改列表,然后选择 select Create Patch from local changes 选项以导出补丁文件。然后你就可以恢复了。