【问题标题】:Egit - Cannot checkout now - stuck in rebase stateEgit - 现在无法结帐 - 卡在变基状态
【发布时间】:2016-03-04 04:33:55
【问题描述】:

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

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

现在如果出现合并冲突,我会得到分数。因此,我打开了类以使用合并工具进行合并,编辑了我必须更改的所有内容并再次将类添加到索引中。

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

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

我试过了:

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

这是错误通知。

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

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

接下来我尝试了本地分行菜单中的“结帐”。结果相同。 我还尝试将我的本地分支推送到上游:

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

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

那么:我怎样才能摆脱这个变基?顺便说一句:变基和合并有什么区别?

【问题讨论】:

    标签: eclipse git github merge


    【解决方案1】:

    Git Staging 视图中有一个中止变基的选项。

    【讨论】:

    • 谢谢!那是我搜索的选项。有点奇怪,我总是不得不中止变基,我没有启动,但是中止对服务器文件没有影响,正如我所注意到的,所以在合并后,我只是中止并且一切都很好。泰!
    • 您也可以点击continue。然后,EGit 会将 rebase 标记为我认为已完成。
    • 谢谢!帮助了我
    【解决方案2】:

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

    变基意味着将旧主代码更改为新主代码(即更改分支的基础),合并意味着将您的更改添加到主代码。

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

    使用 Git Rebase/Merge 过程 在处理您的分支时,将所有文件添加并推送到服务器

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

    [A] master 是旧代码意味着你可以合并你的代码

    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 更改被合并到您的分支并推送到服务器

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

    验证 注意:如果您当前的更改被覆盖并且您不想继续,则在 rebase 时,运行 -

    $git rebase --abort
    

    在进行合并/变基时,如果出现一个消息窗口来编写您的提交语句,则没有转义......写一些东西然后执行以下操作-

    $git reset --hard HEAD~1
    

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

    【讨论】:

      【解决方案3】:

      如果您无法看到 Git Staging 视图或 staging 视图显示错误的存储库,则只需单击工具栏中的变基图标旁边的三角形,然后单击中止。

      Click here

      【讨论】:

        【解决方案4】:

        如果您在 rebase 状态下被阻止,并且 eclipse 拒绝中止它(没有响应),您必须通过取消选中以下选项来停用项目的自动构建:

        项目/自动构建

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

        【讨论】:

          【解决方案5】:

          git rebase --quit 为我工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-02-14
            • 1970-01-01
            • 1970-01-01
            • 2021-02-01
            • 2016-03-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多