我的团队最近搬到了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
我无法拉动或推送到删除服务器。我该如何解决这个问题?
实际上,更好的问题,我该如何防止这种情况?
答案 0 :(得分:8)
这种情况正在发生,因为您正处于合并过程中。通过解决所有冲突并将适当的文件添加到索引来完成合并,或者使用git merge --abort
中止合并。请注意,如果您确实中止了合并,那么当您执行git pull
时,您很可能会遇到冲突,因为我认为您之前的拉动导致了冲突(这就是您在合并过程中留下的原因)。
答案 1 :(得分:4)
此处的问题是远程存储库文件已更改(即其他人已更改并将文件推送到您在本地副本中更改的存储库),现在您也编辑了相同的内容。所以当您尝试推送文件时它会引发错误。
您必须合并该文件,然后提交更改并推送。
Right click on your project -> Team ->Merge
执行此操作时,它将询问要合并的分支。选择分支并继续合并。
案例1:如果没有冲突,则完成合并过程。
你现在可以提交和推送。
案例2:如果发生冲突,egit会将错误消息显示为Conflict,所有那些有冲突的文件将在项目资源管理器上的文件名上标有红色图标。
Right click the files with conflict-> Team -> Merge Tool
这将打开比较窗口。检查并合并您想要的更改。 完成合并后
Right click the files with conflict-> Team -> Add to index
Commit the changes and Push
注意:您必须在此合并过程之前提交所有暂存文件
并回答你的问题
“实际上,更好的问题,我该如何防止这种情况?”
这不是问题,当多个用户在单个存储库中工作时会发生这种情况。在推送尝试从远程存储库拉出之前,无论何时您都倾向于推送。当您尝试拉动时,将说明是否存在任何挂起的更改或冲突远程存储库,你解决冲突和推动。
答案 2 :(得分:3)
<Esc key>:q<Enter key>
成功!
答案 3 :(得分:2)
这就是我的解决方法-
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
答案 4 :(得分:1)
右键单击冲突文件/包,然后选择添加到索引并提交
答案 5 :(得分:1)
半途而废,我的Eclipse死了。随后我被留在这种状态。
为解决此问题,我删除了.git文件夹中的index.lock文件。然后,我才能够按照其他地方的建议进行git merge --abort
。
答案 6 :(得分:0)
我今天使用eGit遇到了这种问题。解决方案是您可以选择冲突的文件,然后选择还原提交。然后,您可以解决冲突的文件并添加到索引,提交和推送