Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse/Git-拉动失败的脏工作树_Eclipse_Git_Ide - Fatal编程技术网

Eclipse/Git-拉动失败的脏工作树

Eclipse/Git-拉动失败的脏工作树,eclipse,git,ide,Eclipse,Git,Ide,正如标题所述,我正试图从我和我的朋友共享的git存储库中提取,我可以提交,他可以提交,但每当我们任何一方试图提取它时,都会发现它失败了:DIRTY_WORKTREE 我们两人都是git的新手,对如何解决这个问题没有任何指导。另一种方法,如果您没有任何工作正在进行中,就是尝试重新设置——努力调整您的脑袋 带EGit:: 在项目上选择Team->Reset…。这将打开一个对话框,您可以在其中选择分支或标记 重置当前分支上的头,以便将索引和工作树重置为所述分支的最后一次提交 然后试试拉。我通过使用gi

正如标题所述,我正试图从我和我的朋友共享的git存储库中提取,我可以提交,他可以提交,但每当我们任何一方试图提取它时,都会发现它失败了:DIRTY_WORKTREE


我们两人都是git的新手,对如何解决这个问题没有任何指导。

另一种方法,如果您没有任何工作正在进行中,就是尝试重新设置——努力调整您的脑袋

带EGit::

在项目上选择
Team->Reset…
。这将打开一个对话框,您可以在其中选择分支或标记

重置当前分支上的头,以便将索引和工作树重置为所述分支的最后一次提交


然后试试拉。

我通过使用git命令行客户端解决了类似的问题。虽然eclipse(egit)只是在说DIRTY_WORKTREE,但在命令行中我看到了多个冲突文件。使用命令行中的
git merge master
,我可以轻松地解决eclipse中的冲突。
因此,对我来说,这似乎是一个egit问题。

在eclipse中,我进入团队同步视图,然后右键单击我的项目,点击“覆盖”覆盖所有本地更改。然后重试合并。

我认为此问题是由EGit版本引起的。 当我在EGIT2.6中使用Spring工具套件时,我也面临同样的问题

EGit包含在STS默认包中,因此EGit升级非常困难


目前我正在将EclipseWTP与EGIT3.7一起使用,这个问题消失了。

我有未提交的更改。在我提交了它们,然后合并之后,dirty worktree问题消失了。

只是为了添加另一个案例,我有dirty\u worktree,我是唯一一个提交到Github项目的人,所以在EGit中我做了一个推送分支。。。使用“如果分支存在并已分支,则强制覆盖远程分支”


危险:如果其他人在同一个项目上工作,此操作将删除他们自发散以来的提交。

我在Eclipse上遇到过类似的问题,未限制的更改是不统一的。 经过一个承诺,我可以合并,一切都回到了它应该是。
查看您的源代码并检查任何更改。如果没有,您可以硬重置。

只需删除项目文件夹中的.gitignore,然后合并即可。
合并将显示冲突,您需要解决冲突,然后推送更改。

这似乎意味着您现在使用的版本有尚未提交的编辑。因此,您要么删除这些编辑,要么提交它们。请注意,如果提交这些文件,可能会出现合并冲突。

删除受影响的文件,然后再次尝试拉取。然后将更改推送到git。我也有同样的问题,这对我有效。

在我的案例中,脏_工作树是由以下顺序引起的:

  • 在提交中,我还提交了一些本应忽略的文件
  • 在下一次提交中,我修改了忽略上述文件的.gitignore
  • 尝试在缺少对.gitignore所做更改的另一个分支上重新设置基址
  • 在这个场景中,Eclipse认为您的工作树是脏的。实际上,当两个文件集中的一个忽略某些文件而另一个不忽略某些文件时,比较这两个文件集并不明显

    为了解决Eclipse中的问题,我做了以下工作:

    • 修改.gitignore,使其与我要重设基础的分支中的相同
    • 愉快地开始重定基址或合并重定基址

    如果您在未提交的情况下进行了更改,eclipse将建议您是否尝试拉取更改。要解决此问题,可以放弃更改或提交这些文件


    来源:

    如果要将本地分支重写为原始分支

    转到Git repo视图>单击原始主机>选择重置->它将显示当前头并重置到分支。
    如果要完全覆盖本地更改,请选择“硬重置”

    当您对尚未提交的文件进行本地更改时,会发生此错误。用git的说法,您的工作树中有未提交的更改

    在这种情况下,当您尝试拉取时,git不确定如何处理您所做的本地更改。它是否应该放弃这些并从远程获取更改?它应该在从远程拉取更改之前提交这些更改吗?这就是它失败的原因


    要在将更改拉入本地存储库之前避免此问题,您必须提交本地更改、将其隐藏或放弃。一旦您的工作树中没有挂起的本地更改,您应该能够毫无错误地进行拉取。

    我也面临同样的问题,当我尝试拉取时失败并显示消息“DIRTY_WORKTREE login”。您可以删除消息中提到的额外文件吗?(正如我在中提到的)hey@VonC我遵循了您在上面链接中提到的步骤,但这对我没有帮助。请看一看我的问题…link::以防其他人有类似的问题-我在Eclipse中遇到了相同的错误-但在
    SourceTree
    中没有。文件被推送到
    SourceTree
    ,但在Eclipse中尝试拉取相同的未修改文件时,我得到了相同的错误。我尝试了>团队->重置(谢谢VonC),一切恢复正常!在我的例子中,我既不能提交更改,也不能从存储库中提取更改。作为预防措施,首先我备份了我对项目所做的所有更改。然后,我右键单击>团队>重置…>远程跟踪中的选定项目>选定重置类型硬>重置。之后,我需要从备份中找回我的更改,并最终提交给他们。@预告有趣:不要犹豫编辑答案并添加你的解决方案。@ VNC感谢你的建议,但我不认为这是一个解决方案,而是你的解决方案的一个扩展或特殊情况。