我有一个非常奇怪的问题:
我有两个分支,正在执行简单的
看起来Git混合了提交记录。
例如,我有两个连续的提交,第一个提交更改文件a和b,第二个提交更改文件c。现在,重新贴基正确地创建了第一个提交,但第二个提交包含了对文件c的更改以及第一个提交中更改的一个还原。然而,这些撤销更改在磁盘上留下了问题,在第三次提交中引起问题。
我认为一些图片可以更好地说明发生了什么:
第一个原始提交只更改了一个空格:
第二个原始提交只添加了两个新文件:
第一个rebase后的提交-这个是正确的:
但现在变得奇怪了:第二个rebase后的提交包含了第一个rebase后的提交的相反结果,以及两个新添加的文件:
在第二个提交之后,rebase失败并显示以下消息:
Database/Scripts/Versions/2.0.0/PKG_BODIES/normalinvoices.sql: needs update You must edit all merge conflicts and then mark them as resolved using git add
查看本地更改后发现第一次提交的更改又出现了:
我非常希望能得到任何有关此问题的见解。
这是一个已知的bug吗?一个特性!? 我做错了什么吗?公司的反病毒程序是否会锁定文件并搞乱一切?但我看不出反病毒程序如何导致某个文件早于应该存在的位置...
最重要的是:如何让我的重新贴基再次工作?
git rebase --onto branchA tagOnMaster
。这是通过一个脚本完成的,在我的旧32位机器上完美运行。现在我换到了一台新的64位机器,它停止正确地工作了。看起来Git混合了提交记录。
例如,我有两个连续的提交,第一个提交更改文件a和b,第二个提交更改文件c。现在,重新贴基正确地创建了第一个提交,但第二个提交包含了对文件c的更改以及第一个提交中更改的一个还原。然而,这些撤销更改在磁盘上留下了问题,在第三次提交中引起问题。
我认为一些图片可以更好地说明发生了什么:
第一个原始提交只更改了一个空格:
![First original commit](https://istack.dev59.com/TLWfB.webp)
![Second original commit](https://istack.dev59.com/RjwdT.webp)
![First rebased commit](https://istack.dev59.com/HktNR.webp)
![Second rebased commit](https://istack.dev59.com/fHl1m.webp)
Database/Scripts/Versions/2.0.0/PKG_BODIES/normalinvoices.sql: needs update You must edit all merge conflicts and then mark them as resolved using git add
查看本地更改后发现第一次提交的更改又出现了:
![unstaged changes](https://istack.dev59.com/1f5NY.webp)
这是一个已知的bug吗?一个特性!? 我做错了什么吗?公司的反病毒程序是否会锁定文件并搞乱一切?但我看不出反病毒程序如何导致某个文件早于应该存在的位置...
最重要的是:如何让我的重新贴基再次工作?
master
分支上执行git rebase --onto branchA tagOnMaster
。 - Daniel Hilgarth