无法合并 origin/master: 错误:您对以下文件的本地更改将被合并覆盖

15

我本地对项目进行了一些更改和提交,但没有将它们推送,然后我在GitHub中添加了新文件并进行了提交。

当我尝试推送本地提交时,Android Studio建议我合并,但当我尝试合并时,它给出了错误提示,无论我如何都拒绝合并并显示该消息。

enter image description here

当我点击合并时显示:

错误信息:

enter image description here

我的记录:

enter image description here

我该怎么办?


你能展示一下完整的错误信息吗?你的工作目录和origin/master分支的状态是怎样的?你可以使用git log命令获取这些信息。 - Adam Arold
1个回答

30

在执行合并操作时,您需要将本地更改储存起来。为此,git提供git stash命令将您未提交的更改保存到临时位置,并使用git stash pop命令将其应用回本地代码。

以下操作可以达到目的:

git stash
git pull origin master
git stash pop

这是一个学习Git的好网站:http://gitready.com/beginner/2009/03/13/smartly-save-stashes.html

但是看了你的截图后,合并似乎不是最好的选择。相反,变基会更有意义。

git stash
git pull --rebase origin master
git stash pop

以下是一些资源,可以帮助您理解合并(merge)和变基(rebase)之间的区别:


非常感谢,伙计。rebase 方法非常有效,不过我还没有完全理解发生了什么,我会花更多时间学习 git。 - humazed
如果您能解释为什么会出现这个问题,那么我就不会再次遇到它了。 - humazed
2
问题的发生是因为您在本地进行了更改,但尚未提交。您可以通过运行 git status 命令查看这些更改。 - seanlinsley
3
如果本地有未提交的更改,合并和变基都无法运行。 - seanlinsley
@seanlinsley 这个回答是这个网站上最好的回答之一。非常感谢! - mertyildiran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接