Git无法合并DIRTY_WORKTREE并且在不编辑文件时发生冲突

时间:2015-04-11 20:40:48

标签: git git-merge

当我尝试从Zend Studio UI合并master和developer git分支时,我收到此错误。 当我尝试通过命令行执行此操作时,我收到此错误:

error: your local changes to the following files would be overwritten by merge

即使文件列表尚未更改。 我试过这个How to ignore error on git pull about my local changes would be overwritten by merge?之后 但是在下一次合并尝试中,我在所有文件中都会出现冲突。

我该如何解决这个烂摊子?

3 个答案:

答案 0 :(得分:0)

您修改了一些文件,但没有将它们提交到您的仓库。使用

检查您的状态
git status

并将所有打开的更改添加到您的分支。如果您有未提交的更改,并且您尝试合并,则会发生该错误。您也可以使用git stashgit pop

答案 1 :(得分:0)

就我而言, DIRTY_WORKTREE 是由以下顺序引起的:

  1. 在提交中,我还提交了一些我应该忽略的文件
  2. 在下一次提交中,我修改了.gitignore ,忽略了上述文件
  3. 尝试在我对.gitignore的更改丢失的另一个分支之上重新设置

在这种情况下,Eclipse认为您的工作树很脏。的确,当两个文件集之一忽略某些文件而另一个文件集忽略时,比较两个文件集并不明显。

解决问题(在适用于任何基于Eclipse的IDE(例如Zend Studio)的Eclipse中工作),我做了以下操作:

  • 修改.gitignore,使其与我要基于的分支相同。
  • 愉快地开始重新合并或重新合并。

答案 2 :(得分:0)

就我而言,我进行了未提交更改。

我提交了更改,然后成功合并