我有一个非常奇怪的问题:我有两个独立的分支,我正在做一个简单的git rebase --onto branchA tagOnMaster
. 这是通过一个脚本完成的,该脚本曾经在我的旧 32 位机器上完美运行。现在我切换到一台新的 64 位机器,它停止正常工作。
看起来 git 混合了提交。
例如,我有两次连续提交,第一次提交更改文件 a 和 b,第二次提交更改文件 c。现在,rebase 正确地创建了第一个提交,但是第二个提交包含对文件 c 的更改以及对第一个提交中更改的还原。然而,这种恢复的更改不知何故留在了磁盘上,并导致第三次提交出现问题。
我认为一些图像会更好地显示发生了什么:
第一个原始提交,它只是改变了一个空间:
第二个原始提交只添加了两个新文件:
第一次重新提交 - 这个是正确的:
但现在变得奇怪了:第二个 rebased 提交除了两个新添加的文件之外,还包含第一个 rebased 提交的反向:
在第二次提交之后,rebase 无法继续显示此消息:
Database/Scripts/Versions/2.0.0/PKG_BODIES/normalinvoices.sql:需要更新
您必须编辑所有合并冲突,然后使用 git add 将它们标记为已解决
查看本地更改会发现从提交 1 开始的更改再次出现:
我真的很感激对此的任何见解。
这是一个已知的错误?一个特点?!难道我做错了什么?公司防病毒程序是否有可能以某种方式锁定文件并因此搞砸了一切?但是我看不到防病毒程序如何导致文件比它应该更早地存在......
最重要的是:如何让我的变基再次工作?