git pull --rebase 通过保留本地更改来解决冲突

2024-02-17

我在当地分支机构重新获得了硕士学位。与此同时,有人在远程对该分支进行了更改。我在做git pull --rebase。我不明白 git 在命名时如何解释这个命令current and incoming, 也ours and theirs.

我应该选择哪个来始终保留本地更改?另外,在我第一次与 master 进行 rebase 后,出现了几十个冲突。有没有命令可以做git pull --rebase只需保留所有本地更改,而不必手动执行?我知道关于ours and theirs,但我不知道如何将这些关键字合并到git pull --rebase命令。

这些东西非常令人困惑,因为所有这些关键字在 merge 和 rebase 之间都会颠倒过来,然后还有 pull 和 rebase 来增加额外的混乱。


支持变革的命令您当地的分行 is:

git pull --rebase -X theirs

直觉上,当你想说“我们的”时,你必须说“他们的”,因为与合并相比,“我们的”和“他们的”的含义在变基期间交换了。让我解释。

我们和他们的合并与变基

当你进行合并时,你总是合并到当前分支;如果发生冲突,“我们的”是指你所在的分行,而“他们的”意味着您要合并的分支。正如您所期望的那样。

变基则不同。假设您正在重建一个名为local onto master.

        master
        ⌄
o---o---o
    \
     A---B---C ‹ local

During a rebase, Git creates a sort of "temporary branch" to do the work1. It starts by moving HEAD to the tip of the branch you're rebasing onto, in this case master:

        master
        ⌄   
o---o---o ‹ HEAD
    \
     A---B---C ‹ local

然后,它从以下位置挑选提交:local一次一个:

        master
        ⌄   
o---o---o---A'---B' ‹ HEAD
    \
     A---B---C ‹ local

现在,让我们想象一下提交的情况C有冲突:

        master
        ⌄             X
o---o---o---A'---B'---C' ‹ HEAD
    \
     A---B---C ‹ local

在这种情况下,“ours”表示 Git 正在处理的临时分支,而“theirs”是从中挑选提交的分支,即local.

如果您想保留更改local分支,你必须选择“他们”的一方。相反,如果您想将更改保留在master,你会选择“我们的”一方。

一旦冲突解决,Git 通过移动来完成变基操作local指向哪里HEAD is:

        master
        ⌄             
o---o---o---A'---B'---C' ‹ HEAD, local
    \
     A---B---C

鉴于没有分支留下引用提交C,这些提交变成无法到达的 https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefunreachableobjectaunreachableobject最终将被删除:

        master
        ⌄             
o---o---o---A'---B'---C' ‹ HEAD, local

1 It's really just a detached head https://git-scm.com/docs/git-checkout#_detached_head, but for the purpose of this explanation, you can think of it as a temporary branch, even though no branch reference is being created.

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

git pull --rebase 通过保留本地更改来解决冲突 的相关文章

随机推荐

  • std::string 何时重新分配内存?

    当使用std string对象 我想向其中添加字符 它会预先分配一些内存 还是只分配我需要的内存 准确地说 std string s s reserve 20 char c a s for int i 0 i lt 25 i s c 在上面
  • 如何使 WIX 安装程序适应可用的 Windows Installer 版本 - 例如超链接控件

    Windows Installer 5 添加了对超链接控件的支持 如果可用的话我想利用它 我无法设置对 Windows Installer 5 的依赖关系 不支持 WinXP 但如果运行安装程序时 Windows Installer 5 可
  • 让敌人以相同的速度沿着路径走

    我开始用java编写游戏 我有敌人和玩家 一个基本的2D游戏 这是第一次获得经验 现在我希望敌人遵循一条路径 我可以将其绘制到 关卡编辑器 中 我有一个 JPanel 一个 mouseMoveListener 单击 Path2D 开始将 m
  • 如何渲染所选对象的数据?

    目前正在尝试学习使用 firebase 进行反应 并不断遇到一些小障碍 截至目前 我正在尝试在新页面中呈现所选项目的数据 索引页包含以下内容 renderPosts return Object keys this state posts m
  • Eclipse WTP 部署构建路径依赖项

    我有一个依赖于其他项目 项目属性 Java 构建路径 项目 的 Eclipse 项目 并且这些其他项目导出自己的库 项目属性 Java 构建路径 顺序和导出 有没有办法让 Eclipse WTP 和 或 JBoss Tools 将依赖项目的
  • 您最近提交的应用因违反 Google Play 开发者计划政策而被拒绝

    1 我的应用程序简单的教育基础内容和测试尝试 2 没有任何谷歌广告 只有一个 youtube 集成 这个简单的应用程序 通过学院提供的激活密钥登录 Google 发送邮件应用程序拒绝 我不明白为什么 问题 违反家庭政策要求 包含吸引儿童的元
  • 我如何告诉 Solr 返回每个文档的命中搜索词?

    我对 Solr 中的查询有疑问 当我使用多个搜索词执行查询时 这些搜索词全部由 OR 逻辑链接 例如q content foo OR bar OR foobar 比 Solr 返回所有与这些术语匹配的文档列表 但 Solr 做了什么not返
  • 从动态 GUI 中的 Gtk 视口/滚动窗口中删除小部件

    我正在构建一个 GUI GTK3 的 Python 绑定 其中一个 Gtk 滚动窗口 来自 Glade 可以包含不同的树视图 该程序启动时有一个空窗口 第一次一切正常 self scrolled window add with viewpo
  • cuda.h、cuda_runtime.h、cuda_runtime_api.h 之间的区别

    我开始使用 CUDA 进行编程 在一些示例中我找到了包含文件cuda h cuda runtime h and cuda runtime api h包含在代码中 有人可以向我解释一下这些文件之间的区别吗 从非常广泛的角度来说 cuda h定
  • PySimpleGUI 如何在图像顶部放置按钮

    这是带有图像和 图像作为按钮 的示例 但我想在图像上放置一个小按钮 可以吗 使用普通的 python 我可以使用 image place 40 40 方法来做到这一点 以及如何使用 PySimpleGUI 来做到这一点 import PyS
  • 替换列表元素是反模式吗?

    我有一个适用于以列表表示的路径的模块 大多数函数都会执行典型的递归列表处理 但现在我需要一个有时会改变路径的函数 所以 我写了这个replace功能 module List let replace f sub xs let rec fini
  • LINQ 查询数据表以检查记录是否存在

    我想对名为 Records 的数据表执行 LINQ 查询并检查记录是否存在 如果它存在 我想找出它所在的行 我该怎么做呢 添加 system linq 命名空间后 我想在数据表上执行 where 操作 但该方法似乎不存在 请指教 PS 我在
  • 什么设置决定应用程序是否针对 iPhone 6 和 6plus 进行缩放?

    因此 当我在 iPhone 6 模拟器上运行我的项目时 部署目标为 7 1 我希望所有内容都能自动缩放以适应更大的屏幕尺寸 但这并没有发生 我的 UILabel 以前水平位于 320 像素宽的情节提要屏幕的中心 对父视图具有领先的空间限制
  • RStudio 控制台中带有日期列输出的 data.frame,预览,但不低于块

    使用 Rstudio 3 3 2 的笔记本 title R Notebook output html notebook 当尝试显示 data frame 时日期栏 data frame 显示在查看器选项卡中 但不在块本身下方 r df lt
  • 如何使用 Facebook SDK 3.1 以弹出视图登录 facebook,而不是通过 safari? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 请帮我解答这个问题 我想创建应用程序
  • clang-format:类声明结束和命名空间关闭之间的空行

    我使用 clang format 来格式化我们的 C 代码 我想在类声明和周围命名空间的右大括号之间有一个空行 如下所示 namespace Foo class Bar 但 clang format 将我的代码更改为 namespace F
  • 如何检查文本框是否为空

    在一个网站上我发现了TryParse方法 如何检查C 中是否有空文本框 但我不知道如何使用它 int outputValue 0 bool isNumber false isNumber int TryParse textBox1 Text
  • 安装 Forge Installer - 自动启动安装程序

    我正在使用 InstallForge 创建安装程序 我希望创建一个安装程序 该安装程序将在启动时自动启动已安装的程序 我认为安装程序可以在启动文件夹中创建快捷方式 并且该程序应该在启动时加载 我用谷歌搜索并找到了解决方案 但当我尝试时却不起
  • jboss as 7 - 在同一Linux服务器中运行多个实例 - 独立与域

    我下载了 jboss tar 文件 复制到我的测试服务器中 解压并将其安装在 HOME jboss 现在 我需要在一台服务器上同时运行三个实例 开发 QA UAT Domain模式适合这种情况吗 我的结论是事实并非如此 域模式是跨多个服务器
  • git pull --rebase 通过保留本地更改来解决冲突

    我在当地分支机构重新获得了硕士学位 与此同时 有人在远程对该分支进行了更改 我在做git pull rebase 我不明白 git 在命名时如何解释这个命令current and incoming 也ours and theirs 我应该选