我有一个本地分支,我们称之为DEV。该分支的提交历史如下:
module_A: 添加CRC校验(9273467932)
module_B: 更改关闭过程 (84705723)
从XXX合并请求#918(265424)
module_D: 清理(3859236)
从解决排水问题的分支合并(38572693)
(...)
现在,我不喜欢第四个提交的消息“清理”,它太模糊了,所以我想编辑它。然后我这样操作:
module_A: 添加CRC校验(9273467932)
module_B: 更改关闭过程 (84705723)
从XXX合并请求#918(265424)
module_D: 清理(3859236)
从解决排水问题的分支合并(38572693)
(...)
现在,我不喜欢第四个提交的消息“清理”,它太模糊了,所以我想编辑它。然后我这样操作:
git rebase -i 3859236
当我打开vim并将3859236标记为edit时,接下来我执行git commit --ammend
并将提交消息更改为更具描述性的内容。到目前为止还不错。因为这是我想要做的唯一更改,所以最后我发出git rebase --continue
但是惊奇的事情发生了:
正在进行交互式变基:
(...)
两个修改: tools/src/file.c
这怎么可能?我只是更改了提交消息,那么Git如何引发冲突文件呢?
我的理论是,Git试图从我合并的提交中重新检视所有提交,这可能会导致冲突。尤其是如果在此期间我拉取了这些分支。
我已经尝试了所有方法。例如添加-p以保留提交消息;-r用于重新创建合并提交--没有成功,它总是尝试重新定义这些分支。我还可以看到它在编辑待办列表时。它列出了不在当前分支上但在我合并或cherry pick的分支上的提交。
因此,我的问题归结为这个——如何限制变基只重新组织这个特定分支的提交。或者,如何在不重新定义的情况下编辑和压缩此分支中的提交。