我有一个名为9-sign-in-out
的git分支,它的代码运行良好,我想把它变成master分支,我现在在master分支上。
$ git branch
9-sign-in-out
* master
我尝试切换到9-sign-in-out
分支,但它不允许我:
$ git checkout 9-sign-in-out
app/helpers/application_helper.rb: needs merge
config/routes.rb: needs merge
error: you need to resolve your current index first
你知道怎样忽略所有master分支错误,把9-sign-in-out
分支变成master分支吗?也许git rebase?但是我不想丢失9-sign-in-out
分支中的代码。
8条答案
按热度按时间4ioopgfo1#
理解这些错误消息的含义是值得的-
needs merge
和error: you need to resolve your current index first
表示合并失败,并且这些文件中存在冲突。如果您认为您尝试进行的合并是个坏主意,您可以使用以下命令恢复正常:但是,如果不这样做的话,你应该按照git手册中的描述解决这些合并冲突。
一旦你解决了这个问题,你就可以 checkout
9-sign-in-out
分支。如wRAR的答案所建议的那样,将9-sign-in-out
重命名为master
的问题是,如果你与任何人共享了你以前的master分支,这将给他们带来问题,因为如果两个分支的历史记录不同,你将发布重写的历史记录。实际上,你要做的是将你的主题分支
9-sign-in-out
合并到master
中,但是要保留主题分支中文件的版本,你可以通过以下步骤来完成:hivapdat2#
更改分支,放弃所有本地修改
将当前分支重命名为master,放弃当前master
tf7tbtn23#
如X1MON1X中所建议的,
我使用
git add
完成合并,然后git checkout
工作正常。zmeyuzjn4#
我在从dev分支切换到master分支时遇到了同样的问题。我所做的是提交我的修改并切换到master分支。你可能有未提交的修改。
你也可以试试这个
git reset --merge
。它可以用来解决任何冲突和恢复。uyhoqukh5#
我在使用GitHub Desktop时遇到了这个问题,当时我试图从开发分支切换到主分支,即使我已经解决了所有合并冲突。
在命令行上键入
git add *
后,它允许我再次切换分支。piah890a6#
我的问题是(主人|重建1/1)
这个命令对我很有效
vxf3dgd47#
这并没有回答问题中描述的确切情况。它回答了以下情况,但最终您会得到相同的错误消息。在这里发布是因为在Google上搜索此内容时,此SO链接首先出现。
这通常发生在GitHub Desktop用户身上。
如果您在一个分支上进行了本地更改,而该分支在远程中被删除,然后从master合并,并且已经解决了冲突,现在您不能将更改移动到任何其他分支,因为;
you need to resolve your current index first
和needs merge
误差,简单地做如下:
从这里你可以做平常的事。
jpfvwuh48#
git commit -m“合并的主机修复了冲突”