git使用学习七、解决报错error: Your local changes to the following files would be overwritten by merge

2023-05-16

git使用学习七、解决报错error: Your local changes to the following files would be overwritten by merge

  • 前言
  • 方法一,丢弃本地改动
  • 方法二,暂存到堆栈区

前言

本篇记录git merge时的一个报错error: Your local changes to the following files would be overwritten by merge,出现的原因是git merge时本地分支的更改没有保存下来。

解决方法分为两种。

方法一,丢弃本地改动

如果本地的修改不重要,那么可以直接把本地的的修改丢弃:

# 丢弃所有本地未提交的修改
git checkout .

有的本地文件是新添加但没有add过的,在git status中的状态是untrack,它们需要通过git clean删除:

# 首先查看一下有哪些文件将被删除
git clean -nxdf

# 确定将被删除的文件无误后,执行删除
git clean -xdf

# 也可以一个一个文件的删除,比如删除文件xxx
git clean -f xxx

注意:丢弃本地文件是危险操作,必须考虑无误后再删除。

方法二,暂存到堆栈区

如果本地的修改重要。后续需要用到,那么可以把当前的修改暂存到堆栈区:

# 暂存到堆栈区
git stash

# 查看stash内容
git stash list

要用到本地修改时,把stash内容应用到本地分支上:

git stash pop

stash中的内容被弹出。如果保存了多个暂存内容,那么弹出顺序是先进后出的(栈)。

如果不想弹出内容,但仍然把stash内容应用到本地分支上:

git stash apply

这样stash中的内容不会被弹出。

此外,可以手动删除stash中的内容:

# 删除指定的一次stash内容,名称可以通过git stash list获得
git stash drop xxx
# 删除所有stash内容
git stash clear

注意:使用git stash暂存内容后merge,再git stash pop,可能报分支冲突,此时可以在本地新建一个分支,在新分支上恢复stash内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git使用学习七、解决报错error: Your local changes to the following files would be overwritten by merge 的相关文章

  • 如何避免 git-apply 更改行结尾

    我有一个 git repo 设置core eol crlf core autocrlf true and core safecrlf true 当我应用另一个补丁时crlf存储库和我的存储库中受影响文件的所有行结尾都更改为lf 目前我正在应
  • Git - 将推送的提交移动到新分支(重命名分支而不是强制推送?)

    还有一个问题几乎完全描述了我的情况 Git 将推送的提交移动到不同的分支 https stackoverflow com questions 9086886 git moving pushed commits to a different
  • 如何获取 TeamCity Build 触发器过滤器来构建功能分支而不是默认分支

    我创建了一个 Team City 构建来构建功能分支 默认分支 refs heads development 分支规范 refs heads feature 我有一个 vcs 触发器 因此它会为每次 git 推送而构建 但我不希望它在有人推
  • 如何在git中标记多个提交

    我想为多个提交 合并分支 创建一个标签 我们可以将多个提交分组到一个标签中吗 请帮助我 你想做的事是不可能的 标签就像分支一样 最多只能指向一次提交
  • git stash apply 和 git stash apply --index 有什么区别?

    每当我跑步时git stash apply and git stash apply index完成后git stash a即使我的 WIP 目录有暂存的更改 未暂存的 但跟踪的更改 和未跟踪的文件 我也会得到相同的结果 这是正常的吗 不应该
  • 从 JSON 模式动态创建表单 [Angular 8]

    我正在努力从 Angular 8 中的 JSON Schema 创建动态表单 我找到了一些库 但是一个很旧 https github com dschnelldavis angular2 json schema form 上次提交约 2 年
  • git tag -l 不会删除已删除的标签

    这是场景 我将我的存储库克隆到一个定期更新的目录 git pull 现在我又创建了一个目录并签出了相同的存储库 我必须创建一些标签 但我错误地创建了名称错误的标签 所以我从第一个目录中删除了标签 git tag d old git push
  • 使用不同的配置文件设置 Git 的开发和测试分支

    我们有一个 WordPress 安装 它有不同的实时 测试 开发配置文件 我知道如何让 Git 忽略wp config php文件 但我想在每个分支中有一个不同的 WP config 文件 这样当开发人员切换到 Dev 时 它将使用 Dev
  • 如何使用 git format-patch 将提交压缩到一个补丁中?

    我在一个分支上有 8 个提交 我想通过电子邮件发送给一些尚未了解 git 的人 到目前为止 我所做的一切要么给我 8 个补丁文件 要么开始为分支历史记录中的每个提交提供补丁文件 从一开始 我使用 git rebase interactive
  • 理想的 Android Studio gitignore 文件

    我最近创建了一个 Android 项目 但这是我第一次使用 Android Studio 我将该项目放在 Git 文件夹中 以便能够通过 Git 与其他开发人员远程工作 我发现默认的 gitignore 文件包含以下内容 iml gradl
  • 从 SVN 转换为 Git 时,如何将修订号放入提交消息中?

    我们将把我们的存储库从 Subversion 转换为 Git 但希望能够保留 SVN 修订号 因为错误跟踪器中的注释会定期引用它 我们将使用git svn clone以及中描述的过程约翰 阿尔宾的博客 http john albin net
  • 如何在 git tag 消息中包含换行符

    当我在 git 中标记版本化代码时 我喜欢在标记消息中使用项目符号点 这可以通过带注释的标签轻松完成 git tag a v1 0 0 Change number 1 Change number 2 Write a tag message
  • 为什么我的 git 自动更新 Expect 脚本不起作用?

    我想制作一个脚本来更新我所有的 GitHub 存储库 我只需要输入我的用户名和密码 脚本将遍历存储库列表 调用git push并通过补充 Expect 脚本提供必要的信息 这是我的 bash 脚本 bin bash echo Updatin
  • 基于github仓库的本地仓库创建本地git仓库并保持更新

    我有一些基本的 git 知识 但我不知道如何实现这一点 我正在尝试克隆 github WordPress 入门主题下划线 https github com automattic s 这个想法是创建一个基本框架based 经过一些修改 在该存
  • 如何解决yarn.lock中的Git冲突

    当多个 Git 分支修改使用的项目中的依赖关系时Yarn http yarnpkg com 很可能会在yarn lock文件中引入冲突 删除并重新生成yarn lock 文件不是一个好主意 因为这可能会导致多个包意外升级 快速解决此文件中的
  • 如何从分叉中签出 PR?

    我正在使用 github 托管一些项目 有人分叉了我的存储库并提交了 pr 我以前从未需要在 fork 中测试 pr 我如何检查分支并测试它 我可以如何将其放入我的仓库中吗 或者我应该检查分叉并以这种方式测试分支吗 您不需要访问叉子 只需使
  • 来自外部 .diff 文件的交互式补丁

    Linux 是否有命令或程序允许交互式地修补源代码 在屏幕上打印每个块并在将其应用到文件之前等待确认 就像是git add p 但是从另一个 diff 文件中进行更改 您始终可以在 shell ruby python 中编写脚本 逐行读取该
  • 无法放弃 git 中的更改

    一两周前 我拿了一些文件 这些文件是我用一个简单的程序存档的find sed tar xz gpgbash 脚本 将它们全部解压 并将它们的内容放入 git 存储库中 提交 将下一个档案内容放入存储库中 提交 冲洗并重复 以便拥有一个更好的
  • 防止 git 在签署提交期间询问 GnuPG 密码

    Git 总是要求我在使用签名提交时输入密码来解锁我的密钥 git commit S m message 如何将密码存储在缓存中 以便我不必在签署提交时每次都输入密码 Git 永远不会掌握 GnuPG 密码 您必须依赖 GnuPG 的缓存密码
  • 如何使 git merge 处理对我的工作树的未提交更改?

    我和一位同事目前都在主分支上工作 我的工作树中有一些我不想提交的代码 调试语句等 现在 如果他对其中一些相同的文件提交更改 我将无法合并它们 git merge origin master Updating 1b8c5c6 eb44c23

随机推荐