Git合并错误

| 我有一个名为
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分支错误并将“ 0”分支变成master吗?也许git rebase?但是我不想丢失
9-sign-in-out
分支中的代码。     
已邀请:
值得理解这些错误消息的含义-
needs merge
error: you need to resolve your current index first
表示合并失败,并且这些文件中存在冲突。如果您确定您尝试进行的任何合并毕竟都不是一个好主意,则可以使用以下方法将情况恢复正常:
git reset --merge
但是,否则您应该按照git手册中所述解决那些合并冲突。 用任何一种方法处理完这一点后,您都应该可以签出
9-sign-in-out
分支。正如wRAR的答案中所建议的那样,将
9-sign-in-out
重命名为
master
的问题是,如果您与任何人共享了以前的master分支,这将给他们带来麻烦,因为如果两个分支的历史有所不同,您将发布重写的历史记录。 本质上,您要做的是将主题分支
9-sign-in-out
合并到
master
中,但将文件的版本完全保留在主题分支中。您可以按照以下步骤进行操作:
# Switch to the topic branch:
git checkout 9-sign-in-out

# Create a merge commit, which looks as if it\'s merging in from master, but is
# actually discarding everything from the master branch and keeping everything
# from 9-sign-in-out:
git merge -s ours master

# Switch back to the master branch:
git checkout master

# Merge the topic branch into master - this should now be a fast-forward
# that leaves you with master exactly as 9-sign-in-out was:
git merge 9-sign-in-out
    
git checkout -f 9-sign-in-out # change branch, discarding all local modifications
git branch -M master # rename the current branch to master, discarding current master
    
git status
中所建议,
Unmerged paths:                                                                                                                                
(use \"git add <file>...\" to mark resolution)                                                                                                 

    both modified:   a.jl                                  
    both modified:   b.jl
我用
git add
完成合并,然后
git checkout
正常工作。     
git commit -m \“合并主固定冲突。\”     

要回复问题请先登录注册