Git合并错误

camsedfj  于 2023-03-06  发布在  Git
关注(0)|答案(8)|浏览(332)

我有一个名为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分支中的代码。

4ioopgfo

4ioopgfo1#

理解这些错误消息的含义是值得的-needs mergeerror: you need to resolve your current index first表示合并失败,并且这些文件中存在冲突。如果您认为您尝试进行的合并是个坏主意,您可以使用以下命令恢复正常:

git reset --merge

但是,如果不这样做的话,你应该按照git手册中的描述解决这些合并冲突。
一旦你解决了这个问题,你就可以 checkout 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
hivapdat

hivapdat2#

更改分支,放弃所有本地修改

git checkout -f 9-sign-in-out

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

git branch -M master
tf7tbtn2

tf7tbtn23#

如X1MON1X中所建议的,

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

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

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

zmeyuzjn

zmeyuzjn4#

我在从dev分支切换到master分支时遇到了同样的问题。我所做的是提交我的修改并切换到master分支。你可能有未提交的修改。
你也可以试试这个git reset --merge。它可以用来解决任何冲突和恢复。

uyhoqukh

uyhoqukh5#

我在使用GitHub Desktop时遇到了这个问题,当时我试图从开发分支切换到主分支,即使我已经解决了所有合并冲突。
在命令行上键入git add *后,它允许我再次切换分支。

piah890a

piah890a6#

我的问题是(主人|重建1/1)
这个命令对我很有效

git rebase --skip
vxf3dgd4

vxf3dgd47#

这并没有回答问题中描述的确切情况。它回答了以下情况,但最终您会得到相同的错误消息。在这里发布是因为在Google上搜索此内容时,此SO链接首先出现。
这通常发生在GitHub Desktop用户身上。
如果您在一个分支上进行了本地更改,而该分支在远程中被删除,然后从master合并,并且已经解决了冲突,现在您不能将更改移动到任何其他分支,因为;
you need to resolve your current index firstneeds merge误差,
简单地做如下:

# unset the upstream which is deleted 
- git branch --unset-upstream
# rename the branch
- git branch -m <newname>

从这里你可以做平常的事。

jpfvwuh4

jpfvwuh48#

git commit -m“合并的主机修复了冲突”

相关问题