草庐IT

git pull时报错:Your local changes to the following files would be overwritten by merge

大草原的小灰灰 2023-04-25 原文

1、产生原因

这种情况一般是由于,你在工作区修改了一些代码,但是还不打算提交,这时同步主干代码的时候,如果你修改的文件与主干分支的代码有冲突,那么拉取主干分支代码时就会报这个错误。

2、简单示例

下面我通过一个简单的例子给大家展示一下这个报错产生的前因后果。

首先主干分支有一个readme.txt文件,内容是my name is master

 然后从主分支创建了一个分支A,在A分支添加了一个a.txt文件,并修改了readme.txt文件

 同时从主干分支创建了一个分支B,在B分支添加了一个b.txt文件,并修改了readme.txt文件

 接下来呢,A分支提交了修改的文件并且合并到了主干分支。

然后B分支将b.txt文件提交并推送到了远程仓库,但此时还不想提交readme.txt文件。然后B分支想同步主干的代码,于是git pull origin master

此时就会报这个错误

3、解决方案

 出现这个错误,一般有以下两种解决方法。

3.1、版本回退

如果我们不想保留本地的修改,直接使用git reset --hard命令进行回退。那么本地你未提交的修改就全部回退了,这个时候就可以成功同步主干代码了。

 3.2、备份本地文件

我们使用以下三个命令

git stash  #备份工作区内容
git pull origin <branch>  #拉取远程分支
git stash pop #恢复工作区内容

我们先使用git stash将工作区内容进行备份,然后就可以拉取主干分支代码,拉下来后再使用git stash pop命令恢复工作区内容。

这个时候会提示文件有冲突

我们根据需求手动去解决冲突就可以了。

 

删除特殊符号,留下我们需要的代码就OK了

 

有关git pull时报错:Your local changes to the following files would be overwritten by merge的更多相关文章

  1. java - 为什么net.exe start <servicename>服务启动时报错? - 2

    我有一个Java应用程序,它使用ApacheDaemon服务安装程序将其注册为Windows服务。我正在使用Puppet运行一个exec{}block来注册该服务,该服务有效,然后链接一个service{}block以启动该服务。Puppet使用“net.exestart”运行服务,但该命令报告错误,即使服务正确启动也是如此。在powershellshell中运行命令的输出是:PSC:\ProgramData\PuppetLabs\puppet\etc\modules>netstartmyserviceThemyservice_descriptive_nameserviceisstar

  2. c# - 目录为空时报错 "The directory is not empty." - 2

    我在尝试从C#代码中删除目录时遇到非常间歇性的“目录不为空”错误,但当我查看时,该目录似乎是空的。实际情况是这样的:进程A使用同步.Net远程调用调用进程B,进程B从目录中删除文件,然后返回到进程A,进程A删除目录本身。该磁盘是本地连接的NTFS磁盘(可能是SATA)。我想知道当您有两个进程以这种方式协作时,是否存在与NTFS的竞争条件,其中进程B的删除调用尚未完全刷新到文件系统?当然,更明显的答案是该目录当时确实不为空,在我查看它之前其他东西清空了它,但我不明白这怎么会发生在我当前的应用程序中,因为没有其他进程这将删除文件。 最佳答案

  3. python - 安装Scrapy时报错 "Could not find ' openssl.exe' - 2

    在Windows864位机器上,错误“找不到‘openssl.exe’”反复弹出,阻止安装。 最佳答案 在64位机器上,您必须使用64位版本的pyOpenSSL,它不包含在大多数Scrapy教程提供的默认下载页面中。查看thislink找到pyOpenSSL的正确64位安装。之后,程序应该不会再出现该错误了。 关于python-安装Scrapy时报错"Couldnotfind'openssl.exe',我们在StackOverflow上找到一个类似的问题: h

  4. javascript - 未知插件 "transform-decorators-legacy"在windows中使用react storybook时报错 - 2

    我将一个在Linux上创建的React项目克隆到我的Windows机器上。该项目包括几个react组件和一个故事书来测试这些组件。“npmstart”配置为在“package.json”文件中运行故事书:“开始”:“npm运行故事书”输入“npmstart”后,我在浏览器控制台上收到此错误:“UncaughtError:模块构建失败:ReferenceError:‘C:\...\node_modules\@storybook\ui\node_modules\react-treebeard\.babelrc’中指定的未知插件“transform-decorators-legacy””.这

  5. c# - 搭建controller vs2015时报错Key Already Exists in Table - 2

    我正在尝试使用VS2015遵循ProfessionalMVC4中的MusicStoreExample。我在构建音乐商店Controller时遇到问题。每次我尝试创建Controller时,都会弹出一个错误窗口,其中唯一的信息是:“运行所选代码生成器时出错:'表中已存在key。'”我已经四处搜索这个特定的错误,但大多数脚手架错误解决方案似乎都是关于web.config中的错误,但我的web.config中甚至没有任何改变,它是新项目时创建的默认配置已创建。我已尝试创建另一个MVC项目并再次对模型进行编码,但我仍然收到错误。如果有帮助,我正在使用MicrosoftVisualStudioE

  6. javascript - 《金融时报》如何在粘贴文本时添加免责声明? - 2

    这是粘贴来自《金融时报》的文本时发生的情况的示例,添加了顶部段落。提前致谢!例子:PleaserespectFT.com'sts&csandcopyrightpolicywhichallowyouto:sharelinks;copycontentfor>personaluse;&redistributelimitedextracts.Emailftsales.support@ft.comtobuyadditionalrights>orusethislinktoreferencethearticle-http://www.ft.com/cms/s/0/792f1aec->9600-11e

  7. java - 上传文件时报错 "Unable to process parts as no multi-part configuration has been provided" - 2

    这个问题在这里已经有了答案:HowcanIuploadfilestoaserverusingJSP/Servlet?(14个答案)关闭6年前。我正在尝试通过JSP文件中的表单上传文件,但出现此错误。servlet已经具有@MultipartConfig符号。我正在使用servlet3.0和apachetomcat8。错误信息:java.lang.IllegalStateException:Unabletoprocesspartsasnomulti-partconfigurationhasbeenprovided在线Collectionparts=request.getParts();`

  8. java - 如何让 string.format 在编译时报错 - 2

    编译器可以访问格式字符串以及所需的类型和参数。所以我假设会有一些方法来指示可变参数的缺失参数......即使只针对一部分情况。eclipse或其他ide是否有某种方式表明传递的可变参数可能会在运行时导致问题? 最佳答案 看起来FindBugs可以解决您的问题。有一些与格式字符串相关的警告类别。http://www.google.com/search?q=%2Bjava+%2Bprintf+%2Bfindbugshttp://findbugs.sourceforge.net/bugDescriptions.html#VA_FORMAT

  9. 运行java命令时报错Error: opening registry key ‘Software\JavaSoft\Java Runtime Environment‘ - 2

    cmd运行java命令时报错Error:openingregistrykey‘Software\JavaSoft\JavaRuntimeEnvironment’cmd使用java+任何参数都报这个错误,具体报错情况如下:报错解释说明:1.Error:openingregistrykey‘Software\JavaSoft\JavaRuntimeEnvironment’说明:打开注册表Software\JavaSoft\JavaRuntimeEnvironment失败(去注册表查看,没有找到该目录)2.Error:couldnotfindjava.dll说明:未找到java.dll文件3.Err

  10. c++ - Qt - 编译器在我的 MainWindow 上调用 setLayout() 时报错 - 2

    我想学习如何在没有设计器的情况下手工创建图形用户界面。我试图向我的MainWindow添加布局,但在运行时显示QWidget::setLayout:AttemptingtosetQLayout""onMainWindow"",whichalreadyhasalayout这是我的代码://HeaderclassMainWindow:publicQMainWindow{Q_OBJECTpublic:MainWindow(QWidget*parent=0);~MainWindow();private:QHBoxLayout*layout;};//Constructorinmy*.cppMai

随机推荐