Egit - 现在无法结账 - 陷入rebase状态

时间:2015-11-30 13:56:51

标签: eclipse git github merge

我几天前问了一个类似的问题,但我没有得到有用的答案,所以我想让一切都更精确。

我有一个大项目作为github上的私人回购。我和我的一个朋友正在研究它。我将整个仓库导入到本地存储库并进入eclipse,一切都很顺利,直到合并冲突出现。每次,我都会遇到合并冲突(例如,当我在处理经常使用的类之前忘记拉动)时,我的eclipse工作区中的整个项目会切换到“Rebase w / merge”状态:

Rebase w/merge state of the project

现在我得到了合并冲突的标记。所以我打开了类与合并工具合并,编辑了我必须更改的所有内容,并再次将类添加到索引中。

接下来,我提交了所有合并更改并将所有内容推送到上游到master-branch(到目前为止我们只使用master,因为我们都没有使用git和vcs / svn的经验。)

但是现在,我既不能切换回主分支,也不能取消rebase或做任何其他事情。

我试过了:

右键单击项目文件夹 - >团队 - >切换到 - >主。 Checkout fail

这是错误通知。

接下来我被告知取消Git Repositories View中的rebase:

Git Repo View

但我的本地仓库和远程仓库都没有任何与变基有关的选择。

接下来,我在本地分支的菜单中尝试了“checkout”。结果相同。 我还试图将我的本地分支推入上游:

enter image description here

这是我对merge / rebase选项的预设,但这两个选项都会产生相同的结果:

enter image description here

我在github中查看了我的repo - 我的所有更改(包括合并解析)已经被推送到主分支并准备好获取。我的队友可以拉他们并继续工作。但我无法逃避这个Rebase w / merge状态。每次这个状态出现时,我都必须删除所有项目资源,删除本地存储库,将所有内容重新导入到eclipse中,最后,我不得不一遍又一遍地进行所有其他配置。

所以:我怎样才能逃脱这个变种呢?顺便说一下:rebase和合并有什么区别?

5 个答案:

答案 0 :(得分:36)

Git Staging视图中,可以选择中止rebase。

enter image description here

答案 1 :(得分:1)

使用合并上游提交到本地分支。

Rebase意味着将旧主服务器更改为新主服务器代码(即更改分支机构的基础),并且合并方法将您的更改添加到主服务器。

您也可以尝试使用git命令行来解决此类冲突。

使用Git Rebase / Merge Process 在您的brach上工作时,可以添加所有文件并将其推送到服务器

git add .
git commit -m "SSSS"
git push -u origin <BranchName>
git checkout master
git pull

[A]主人是旧代码意味着您可以合并您的代码

git merge <your branch name>
git push

[B] Master有更新的代码并显示从服务器中提取的文件列表

$ git checkout your_branch  Note: make sure you are working in your branch
$ git rebase master

现在您将收到有关冲突的消息,因此请从底部开始处理每个文件以解决冲突 现在添加该文件

$ git add <filename which you just updated> 
$ git rebase --continue

按照上述两个命令,直到解决所有冲突。 现在master更改合并到您的分支并推送到服务器&lt;&lt;你的分支 现在您需要更新主分支

$ git checkout master
$ git merge <YOUR_BRANCH>
$ git push

验证 注意:如果您的当前更改被覆盖并且您不想继续进行变基,请运行 -

$git rebase --abort

当进行合并/ rebase时,如果消息窗口出现写你的提交语句,那么就没有ESCAPE ...写一些东西,然后执行以下操作 -

$git reset --hard HEAD~1

[此命令会将当前提交头重置为1级,返回到上一次合并中发生的事件将恢复]

答案 2 :(得分:0)

如果您在查看Git Staging视图或登台视图显示错误的存储库时遇到问题,只需单击工具栏中rebase图标旁边的三角形,然后单击中止。

Click here

答案 3 :(得分:0)

如果您在重新设置状态下被阻止,并且如果eclipse拒绝中止它(无响应),则必须通过取消选中以下内容来停用项目的自动构建:

  

项目/自动构建

这将停止所有挂起的构建。

答案 4 :(得分:0)

git rebase --quit为我工作。