【发布时间】:2014-04-09 01:16:46
【问题描述】:
我在 git 中遇到了一个奇怪的情况,其中我有一个功能分支修改了一些文件并删除了一个文件“foo.js”。当我通过“git rebase master feature”重新定位到master时,我遇到了以下类型的冲突:
CONFLICT (rename/delete): src/main/resources/com/blah/bar.js deleted in Change some js and renamed in HEAD. Version HEAD of src/main/resources/com/blah/bar.js left in tree.
奇怪的是,主分支和特性分支都没有修改过 bar.js,更不用说删除了。更重要的是,执行“Git Rebase -I主功能”导致在没有冲突(选择所有“选择”时)。
一个可能的重要线索是 foo.js 和 bar.js 是相似但不相同的文件,稍微修改的文件也类似于 foo.js 和 bar.js。我唯一能做出的疯狂猜测是,对相关 js 文件所做的一些更改以某种方式使 git 误以为分支功能中的违规提交包括删除 bar.js,然后重命名 foo.js(这是已删除)到 bar.js。这是可能的/预期的吗?有谁知道为什么会发生这种情况?仅供参考,我在 linux mint 16 上使用 git 版本 1.8.3.2。
【问题讨论】: