Windows上的Git rebase有时会因莫名其妙的“未覆盖的工作树文件被覆盖”而失败

时间:2014-02-21 02:09:51

标签: git msysgit

当他们使用rebase进行拉动时,这偶尔会影响我们的一些开发人员。例如,在本地进行5次提交后,他们运行了一个:

git pull --rebase origin master

在推动前使其历史呈线性。大部分时间这种方法都可以正常工作,但是在“重新应用你的提交”阶段,在几次提交的过程中,rebase将会停止并出现错误:

The following untracked working tree files would be overwritten by merge

并列出已经应用的提交修改的文件。

我见过很多关于这个问题的报告,例如this question,但他们都在谈论OSX而我们在Windows上。不过我们尝试过设置:

git config --global core.trustctime false

但这没有帮助。我们确保防病毒不监控源控制目录,并且没有运行备份程序......在rebase操作期间不应该触摸这些文件。

有没有其他人遇到过这个问题并找到了原因?

1 个答案:

答案 0 :(得分:0)

您能否确定是否没有未跟踪的文件。如果存在,您需要在执行git rebase之前先 git checkout

更好的做法是通过以下步骤。

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

创建并结帐到您自己的新本地分支。

git checkout -b <MyLocalBranch>

根据需要进行更改。然后

git add .
git commit -m <message>
git review/push

推送完更改后,请返回主人并执行git pull

git checkout master
git pull

回到你当地的分公司并重新加油。

git checkout <MyLocalBranach>
git rebase -i master

现在您对本地分支机构很满意,并准备在您的本地分支机构进行更改。此外,通过执行此操作,您可以拥有多个本地分支,而不会与主服务器产生冲突。