Eclipse “我该如何解决?”;无法拉入状态为“正在合并”的存储库;在EGit?

Eclipse “我该如何解决?”;无法拉入状态为“正在合并”的存储库;在EGit?,eclipse,git,Eclipse,Git,我的团队最近转移到Git,今天Git第二次在我自己更改并已提交到本地的一行代码上出错,这是我最后一次编辑的文件。这是它给我的错误消息: Cannot pull into a repository with state: MERGING" org.eclipse.jgit.errors.WrongRepositoryStateException Cannot pull into a repository with state: MERGING Cannot pull into a rep

我的团队最近转移到Git,今天Git第二次在我自己更改并已提交到本地的一行代码上出错,这是我最后一次编辑的文件。这是它给我的错误消息:

Cannot pull into a repository with state: MERGING"
org.eclipse.jgit.errors.WrongRepositoryStateException

Cannot pull into a repository with state: MERGING
    Cannot pull into a repository with state: MERGING
我无法拉动或推动移除服务器。我该如何解决这个问题


实际上,更好的问题是,如何防止这种情况发生?

这里的问题是远程存储库文件已更改(即,其他人已更改并将文件推送到了您在本地副本中更改的存储库),现在您也对其进行了编辑。因此,当您尝试推送文件时,会抛出错误。
您必须合并文件,然后提交更改并推送。

右键单击项目->团队->合并

当您执行此操作时,它将询问要合并的分支。选择分支并继续合并。

案例1:如果没有冲突,则合并过程将完成。 您现在可以提交并推送。

案例2:如果存在冲突,egit会将错误消息显示为冲突,所有存在冲突的文件将在project explorer上的文件名上方用红色图标标记。

右键单击有冲突的文件->团队->合并工具

这将打开比较窗口。检查并合并所需的更改。 完成合并后

右键单击有冲突的文件->团队->添加到索引
提交更改并推送

注意:在此合并过程之前,您必须提交所有暂存文件。
并回答您的问题
“实际上,更好的问题是,我如何防止这种情况发生?”

这不是一个问题,当多个用户在一个存储库中工作时会发生这种情况。每当您想要推,在推前尝试从远程存储库中拉出。当您尝试拉EGIT时,会说在远程存储库中是否存在任何未决的更改或冲突,并且解决冲突和推送。

< P>这是因为您处于合并的中间。通过解决所有冲突并向索引中添加适当的文件来完成合并,或者使用
git merge--abort
中止合并。请注意,如果您中止合并,当您执行<代码> Git拉< /代码>时,很可能会发生冲突,因为我假设您以前的拉引起冲突(这就是为什么您在合并的中间)。p> 右键单击冲突文件/包,然后选择添加到索引并提交

  • 我尝试解决之前建议的openshift项目问题:git合并--中止
  • 我遇到了一个问题“无法拉入状态为:合并已解决的存储库”。 解决方法:git reset--硬 见:
  • 比制造:git pull
  • git提交
  • 要退出VIM编辑器,我使用了:
    :q
    6.git推送

  • 成功

    我今天使用eGit遇到了这种问题。解决方案是,您可以选择冲突文件,然后恢复提交。然后您可以解析冲突文件并添加到索引、提交和推送

    1) Right click on project -> Team -> Reset -> [Reset popup will open]
    2) By Default Local Repo will be selected -
    Reset to: refs/head/master
    Reset Type: Mixed (HEAD and index updated)
    3) Click on Reset
    4) Right click on project -> Team -> Git Pull
    5) Right click on project -> Team -> Push to upstream
    

    在一次拉扯的中途,我的日食消失了。后来我被留在了这种状态


    为了解决这个问题,我删除了.git文件夹中的index.lock文件。我当时只能在别处提出“<代码> Git合并-ABORT ”。< / P>我不使用EGIT,所以我不能肯定,但是错误消息似乎告诉我,你已经停止在一个冲突的合并中间,没有(a)完成合并,或者(b)中止合并,所以你仍然处在冲突的合并中,在你决定如何处理冲突之前,egit拒绝继续。但你错过了我问题的一个关键部分,那就是它为我上次编辑的文件提供了冲突。我是openshift项目的唯一用户。我提出了你所有的建议,但不能这样做:右键单击带有冲突的文件->团队->添加到索引所选冲突文件没有“添加到索引”。在我对整个项目执行“右键单击有冲突的文件->团队->重置…”之前。在那之后,所有可能的事情都发生了:碰撞、推、拉、比较。。服务器版本似乎没有更改。但我只能通过主部署问题看到差异。添加到索引对我没有任何帮助。我必须执行Team->Reset有没有办法通过EGit执行git abort--merge?否则,谢谢你,下次我和同事发生冲突时,我会试试这个。