在错误的手动合并冲突解决之后重新冲突合并

2024-01-09

解决合并冲突并提交后,很明显我的手动合并冲突解决方法是错误的。我已经上演、提交并推送了该存储库。如何使冲突文件恢复到冲突状态,以便我可以以不同的方式解决它?

请注意,此时为时已晚git checkout -m因为我已经提交了错误的合并解决方案。


从一个干净的工作目录开始,我会硬重置回合并之前,启动一个新分支,然后再次执行合并。然后,您可以在原始合并结果分支和新分支之间执行差异,以获得要应用于原始分支的补丁文件。由于您已经推送了结果,因此您将需要创建一个新的提交来纠正合并提交,而不是在编辑历史记录后执行强制推送。

过于详细的版本:

如果您当前的历史记录看起来像这样并且c是您要更改的合并提交。

a - c - d <-HEAD/master
   /  
  b

从一个开始完全地干净的工作目录。

git branch old_merge <sha1 of c>  // create branch for original merge
git checkout -b new_merge <sha1 of a> // create and checkout branch before merge
// re-merge branch

这将创建类似这样的东西......

 old_merge
    ∨
a - c - d <-master
  X  
b - c' <-HEAD
    ∧
 new_merge

这可能真的很令人困惑,但希望你能明白。现在您可以执行之间的差异old_merge分行和new_merge分支以获取您需要在 master 上进行的更改。

git diff old_merge..new_merge

你可以使用patchUNIX 实用程序,用于在您再次签出 master 后应用两个分支之间的差异。

git checkout master
git diff old_merge..new_merge | patch -p1

希望这有帮助。如果您对任何事情感到困惑,请告诉我。

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

在错误的手动合并冲突解决之后重新冲突合并 的相关文章

  • 将更改从通用差异导入 git 存储库

    我正在尝试将更改从一个源代码控制系统 专有且复杂 导入到 git 存储库中 我目前正在通过运行一个脚本来执行此操作 该脚本只是按顺序同步到每个修订版并将其提交到 git 存储库 但由于各种原因 这已变得不可行 对于每个修订版 我都可以获得描
  • Git 合并删除文件

    这是第二次发生这种情况 当我进行合并时 我后来意识到正在合并的分支中的一些文件不再位于正在合并的分支中 最新的例子是我们有一个功能分支 我一直在合并主开发分支中的更改 合并后我们丢失了很多文件 并且它们现在不存在于功能分支中 为什么会出现这
  • 在单独的终端屏幕上显示 git diff 和 git log 输出

    设置新的开发环境后 我遇到了一个奇怪的 git 行为 我不记得过去见过 我习惯于git diff and git log在终端中创建一个新屏幕并在其中显示其输出 什么less默认情况下 我用它作为我的寻呼机 然后我可以退出并返回到之前的终端
  • git apply 不对文件进行任何更改

    我必须对我的存储库应用补丁并正在运行 git apply directory PWD xxxxx patch 由于我不会详细讨论的原因 我无法使用git am在这种情况下 我需要使用目录标志 吉特告诉我 gt git apply direc
  • 禁止 Gerrit 推送到 refs/for/master

    我已经更新了所有项目昨天获得访问权限 人们说他们今天早上无法将更改推送到存储库 当我恢复访问权限后 他们仍然无法将更改推送到存储库 只能clone工作正常 在将更改推送到远程存储库时 它表示 remote rejected HEAD gt
  • 使用 git filter-branch 然后 git push --force 清除大文件后,远程(Gitlab)上的 Git 存储库大小仍然很大

    我已按照 Gitlab 文档中有关 使用 Git 减少存储库大小 的说明进行操作 通过从历史记录中清除大文件 https docs gitlab com ee user project repository reducing the rep
  • ssh:连接到主机 bitbucket.org 端口 22:连接超时

    一切都工作得很好 做了一些git pushes 没有问题 今天我决定将我的框架更新到最新版本 因此它稍微改变了我项目的目录结构 因此 在 Bitbucket 中 我创建了一个新的存储库 dev1 project com 并将我的项目文件夹重
  • 我可以将我的heroku git repo导入bitbucket吗?如何?

    我的笔记本电脑坏了 我需要从另一台计算机上编码 我正在使用 Heroku 我想将最新版本的代码从 Heroku 获取到另一台机器 据我了解 强烈建议使用 GitHub 或 BitBucket 获取适当的远程存储库 我决定尝试一下 BitBu
  • 如何使用 PyGithub 创建新存储库

    如何使用 PyGithub 在 Github 上创建新的存储库 我特别想知道如何使用create repo http jacquev6 net PyGithub v1 github objects AuthenticatedUser htm
  • Django 和 VirtualEnv 开发/部署最佳实践

    只是好奇人们如何结合 virtualenv 部署 Django 项目 更具体地说 如何使生产虚拟环境与开发计算机正确同步 我使用 git 进行 scm 但 git 存储库中没有 virtualenv 我应该这样做 还是最好使用 pip fr
  • 从远程获取上个月在 git 分支上提交的文件列表

    我正在尝试获取上个月在 master 分支的 github 存储库上更改的所有文件的列表 我的本地克隆没有可以追溯到那么远的日志 因此当我运行以下命令时 git diff stat 1 month ago 我收到一条警告消息和一小部分更改
  • 使 .git 目录 web 不可访问

    我有一个网站 我使用 github 闭源 来跟踪更改和更新网站 唯一的问题是 git 目录似乎可以通过网络访问 我怎样才能停止这个并且仍然能够使用 git 我应该使用 htaccess 吗 我应该更改 git 的权限吗 把这个放在一个 ht
  • Git:如何维护项目的两个分支并仅合并共享数据?

    假设我有一个项目的两个分支 IMClient MacOS 和 IMClient Windows 它们的代码仅 比方说 一个目录 main 有所不同 所有其他目录都包含与系统无关的代码并且可以互换 有些工作人员在 Windows 版本上工作
  • 如何设置“阅读文档”以使 Sphinx autodoc 选项发挥作用?

    我的项目不是使用 autodoc 构建的 我遇到了关于我的项目未在 autodoc 中构建的常见问题 https read the docs readthedocs org en latest faq html my project isn
  • 如何将更改提交到另一个预先存在的分支

    我刚刚对一个分支进行了更改 如何将更改提交到另一个分支 我正在尝试使用 git checkout the commmit to the changed branch b the other branch 但是 我认为这不是正确的做法 因为在
  • 使用 SourceTree 克隆存储库

    有人可以给我一个简单的使用 SourceTree 克隆存储库的快速演练吗 在书签中 我单击克隆存储库 对于源路径 我粘贴如下所示的 URL 电子邮件受保护 cdn cgi l email protection 客户端 应用程序名称 ios
  • 在 git 中管理 schema.rb 的首选方法是什么?

    我不想添加schema rb to gitignore 因为我希望能够从该文件加载新的数据库架构 然而 保持检查状态会导致各种虚假冲突 而这些冲突很容易通过新的解决方案解决 db migrate reset 基本上我想要一种方法 将 sch
  • 如何在没有本地存储库的情况下在远程运行 git 命令

    我有一个名为 git export 的脚本 它可以帮助我导出远程存储库 它是这样运行的 git export http host com git repo lt t tag or b branch or c commit gt local
  • 如何与其他用户共享 bitbucket 存储库?

    我正在使用 Bit 存储桶 并且我想与一位朋友分享我的存储库 我用的是免费的个人账户 似乎有一个选项可以在位桶中创建团队 但它说它将把我的帐户从个人帐户转换为团队帐户 我不要那个 我如何授予其他用户访问此存储库的权限 有一个共享链接选项 如
  • 如何防止克隆我的 github 存储库?

    我正在尝试找到一种方法来防止从 github 存储库克隆 例如 我有一个私有存储库 有些人在该存储库中工作 在公司计算机中 团队中的每个人都设置了授权级别 当我在 github 上为某个用户设置授权时 该存储库可在他 她自己的 github

随机推荐