【发布时间】:2021-05-21 12:56:00
【问题描述】:
我有几个提交对文件进行无效更改,但其中一些提交与对另一个文件的相关更改相结合。所以我只想压缩对一个文件的更改。我该怎么做?
示例:
以下应该象征提交和[......]文件的内容。
这就是我所拥有的:
- 提交 5
file A: [.....] file B: [......] - 提交 4
file A: [ ] file B: [.... ] - 提交 3
file A: [.....] file B: [... ] - 提交 2
file A: [ ] file B: [... ] - 提交 1
file A: [.....] file B: [.. ]
差异是:
- 提交 5
file A: [+++++] file B: [....++] - 提交 4
file A: [-----] file B: [...+ ] - 提交 3
file A: [+++++] file B: [... ] - 提交 2
file A: [-----] file B: [..+ ] - 提交 1
file A: [+++++] file B: [++ ]
在这种情况下,提交 5、3 和 1 处的文件 A 是相同的。
这就是我想要的: 所以我想把它压扁。
- 提交 5
file A: [.....] file B: [......] - 提交 4
file A: [.....] file B: [.... ] - 提交 2
file A: [.....] file B: [... ] - 提交 1
file A: [.....] file B: [.. ]
差异是:
- 提交 5
file A: [.....] file B: [....++] - 提交 4
file A: [.....] file B: [...+ ] - 提交 2
file A: [.....] file B: [..+ ] - 提交 1
file A: [+++++] file B: [.. ]
有什么办法吗?
编辑:也许我的问题不是很清楚。我通常知道如何进行交互式变基和壁球。更重要的是,我只想“压缩”文件 A 的无效更改,同时保留文件 B 上的更改。(这样做会导致提交 3 什么都不做,因此它被删除。)
我在“正常”变基时面临的问题是,如果我只是压缩 1-5 的所有提交,我最终会得到我想要的文件 A 的结果,但是对文件 B 的所有中间更改都会丢失.
我添加了一个 diff 的表示,以便更好地描述这种情况。
【问题讨论】:
标签: git rebase git-rebase undo