Windows上的Git rebase有时会出现无法解释的“错误”;您未跟踪的工作树文件将被覆盖;错误

Windows上的Git rebase有时会出现无法解释的“错误”;您未跟踪的工作树文件将被覆盖;错误,git,msysgit,Git,Msysgit,当我们的一些开发人员使用rebase进行拉取时,有时会受到影响。例如,在本地向master提交5次后,它们运行: git pull --rebase origin master 在推进之前让他们的历史线性化。大多数情况下,这种方法都可以正常工作,但在“重新应用您的提交”阶段,大约在中的两次提交期间,重基会随着错误而停止: The following untracked working tree files would be overwritten by merge 并列出由已应用的提交修改的

当我们的一些开发人员使用rebase进行拉取时,有时会受到影响。例如,在本地向master提交5次后,它们运行:

git pull --rebase origin master
在推进之前让他们的历史线性化。大多数情况下,这种方法都可以正常工作,但在“重新应用您的提交”阶段,大约在中的两次提交期间,重基会随着错误而停止:

The following untracked working tree files would be overwritten by merge
并列出由已应用的提交修改的文件

我已经看到了很多关于这个问题的报告,比如,但是他们都在谈论OSX,我们在Windows上。尽管如此,我们还是尝试设置:

git config --global core.trustctime false
但这没有帮助。我们已确保防病毒软件不会监控受源代码控制的目录,并且没有正在运行的备份程序。。。在重设基础操作期间,不应接触这些文件


是否有其他人遇到此问题并找到了原因?

能否确保没有未跟踪的文件。如果存在,您需要在执行git重基之前先签出git

更好的做法是执行以下步骤

假设您有一个新的git克隆存储库

创建并签出到您自己的新本地分支机构

git checkout -b <MyLocalBranch>
回到您当地的分支机构,并重新设置其基础

git checkout <MyLocalBranach>
git rebase -i master
git签出
git rebase-i master

现在,您与本地分支关系良好,并准备对本地分支进行更改。此外,通过这样做,您可以拥有多个本地分支,而不会与您的主分支产生冲突。

这真的很烦人,并且使得rebase没有应有的用处。当您检查这些文件时,是否存在任何差异/diff标记等。IIRC您应该能够使用:1::2::3:file stage命名来进行差异。也就是说,“更改”只是一些快速状态错误,还是存在真正的代码差异?即使是没有未跟踪文件的新克隆的repo,也会发生这种情况。这不是不理解重定基址的问题。。。当后台进程访问git正在使用的文件时,这似乎是一个已知的问题,特别是在OS X下,备份进程不断监视文件,有时在Windows下,程序使用独占文件锁。在新版本的git for Windows中,它似乎已被修复。
git checkout master
git pull
git checkout <MyLocalBranach>
git rebase -i master