我有一个git分支,名为9-sign-in-out,代码工作完美,我想把它变成master。我目前在主分支上。

$ git branch
9-sign-in-out
* master

我试图切换到9签入-出分支,但它不允许我:

$ 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

有什么想法我可以忽略所有的主分支错误,并将9签入-出分支变成主?也许会重新做人?但是我不想丢失9-sign-in-out分支中的代码。


当前回答

变更分支,丢弃所有本地修改

git checkout -f 9-sign-in-out 

将当前分支重命名为master,丢弃当前master

git branch -M master 

其他回答

变更分支,丢弃所有本地修改

git checkout -f 9-sign-in-out 

将当前分支重命名为master,丢弃当前master

git branch -M master 

根据git status提示,

Unmerged paths:                                                                                                                                
(use "git add <file>..." to mark resolution)                                                                                                 

    both modified:   a.jl                                  
    both modified:   b.jl

我使用git add来完成合并,然后git签出工作正常。

当从开发分支切换到主分支时,我也遇到了同样的问题。我所做的就是提交我的更改并切换到主分支。您可能有未提交的更改。

你也可以尝试这个git reset -merge。这可用于解决任何冲突并恢复。

当我使用GitHub桌面试图从开发分支切换到主时,即使在我解决了所有合并冲突之后,我也得到了这个。

在命令行上输入git add *后,它允许我再次切换分支。

git commit -m "合并的master修正了冲突。"