Git rebase:合并非后续提交

2024-01-14

到目前为止,我知道有一种很好的方法可以使用“git rebase --interactive”来组合提交并更改提交消息

出现以下情况:

$ git rebase --interactive HEAD^^^^
pick 5b7c140 commitA
pick 40ffd7c commitB
pick 5e7647d commitC
pick 78bea2d commitD

Rebase [...]

是否还可以满足以下要求:

将 commitA 和 commitS 以及 commitS 和 commitS 组合到新的提交 cAC 和 cBD 中?


这是可能的 - 您还可以使用交互式变基重新排列提交的顺序:

pick 5b7c140 commitA
squash 5e7647d commitC
pick 40ffd7c commitB
squash 78bea2d commitD

or

pick 5b7c140 commitA
fixup 5e7647d commitC
pick 40ffd7c commitB
fixup 78bea2d commitD

两者的区别在于squash允许您编辑新提交的提交消息,而fixup只是丢弃第二个提交消息,留下前面的消息pick组合提交的提交消息。 (如果你的编辑器启动得足够快,那么就养成只选择squash为您提供了一个很好的机会来查看提交消息,即使您认为可能不需要使用提交消息的部分内容fixup犯罪。)

对提交重新排序可能会在变基期间带来冲突的可能性;在这个例子中,如果commitB and commitC更改了文件的同一部分。考虑到这一点,我经常分两步进行这种变基,首先重新排序提交以处理冲突(在示例中)pick A, C, B, D)然后进行提交组合(squash, fixup)。我发现这样冲突管理变得更容易,特别是如果我在做这件事的过程中被打断的话。

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

Git rebase:合并非后续提交 的相关文章

  • 如何在项目提交历史中找到已删除的文件?

    曾几何时 我的项目中有一个文件 我现在希望能够获取它 问题是 我不知道我什么时候删除了它 也不知道它在哪条路径上 当该文件存在时 如何找到该文件的提交 如果您不知道可以使用的确切路径 git log all full history the
  • 将构建文件夹推送到不同存储库的 Github 操作

    我有 2 个存储库 存储库 A 包含源代码 存储库 B 将构建文件夹发布到网络 我为此目的采取了行动 但收到错误 git clone single branch branch main github com blockcodelabs B
  • 理解“git remote show”命令输出...“为‘git push’配置的本地引用”的含义是什么?

    我有两个遥控器和两个本地分支机构 本地分支 master 正在跟踪远程分支 origin master 本地分支 mirror 正在跟踪远程分支 github master 这是在我的 git config 文件中 remote origi
  • git,Heroku:预接收挂钩被拒绝

    我正在设置 git 存储库并尝试将其链接到 Heroku 当我运行命令时 git push heroku master 我收到 Counting objects 7 done Delta compression using up to 2
  • Git - “非单调索引”

    我正在本地电脑上克隆 git 存储库 在此过程中 该命令会输出大量以下错误消息 error non monotonic index git objects pack pack idx 例如 该消息保留在拉动或分支交换机上 但一切似乎都有效
  • 我在使用“heroku open”命令时遇到错误

    我在 heroku 上创建了一个 python 应用程序 推动后我给了heroku open命令 我在浏览器上遇到这样的错误 Application Error An error occurred in the application an
  • 当你的项目有秘钥时,如何推送到 GitHub?

    我正在尝试将一个全新的空 Rail 3 0 4 项目推送到 GitHub 但刚刚意识到 cookie 会话存储有一个密钥 In config initializers secret token rb NewRuby192Rails304Pr
  • libgit2如何获取当前目录的状态?

    如何获取单个目录而不是整个存储库的状态 我查看了以下内容 git status list new它获取存储库状态 但我只关心位于单个目录中的文件 git status file获得单身状态 有没有办法可以使用 libgit2 获取单个目录的
  • Git 子树导出和重新导入问题

    我有一个更大的 git 存储库 A 它与我的另一个项目 B 共享一定量的代码 为了使维护更容易 我决定使用公共代码 C 创建第三个存储库 然后通过git subtree 我准备了 A 中的所有内容 将通用代码放在文件夹 sub 中 并使用了
  • 如何让 Git diff 忽略版本号更改?

    有没有办法从 Git diff 中消除版本号变化噪音像这个 https github com keith Xcode app strings commit 9502c601cad31ef452c4cd6e8ece3982345fba1d 具
  • git pull:无法快进,

    你能帮我解决我的问题吗 当我尝试从 dev 分支拉取时发生错误 我浏览了解决方案 它说我需要 rebase 但它对我来说没有成功 CT aohc MP1GYWQA MINGW64 c TCO source RAPMD Web Fronten
  • 为什么 iTerm2 中不显示 git 颜色

    所以我有我的 gitconfig 设置来处理颜色 在终端中它工作得很好 看起来也不错 然而 在 iTerm2 中 除非我为 git 设置反向属性 否则我的 gitconfig 根本不会显示颜色 然后它们就出现了 但是谁喜欢相反的颜色呢 为什
  • 在大型团队中使用 git VS Mercurial 和 Xcode 进行 iOS 开发有何优缺点?

    我们希望在一个项目上一起工作 签出 签入文件 一些开发人员推荐 git 其他开发人员更喜欢 Mercurial 有没有人对这两者都有经验 并且能告诉我为什么我应该花时间在不与 Xcode 集成的 Mercurial 上 而不是只使用集成的
  • git 中的 web.config 和 app.config 机器特定设置

    我们在不同的办公室有多个开发团队 他们需要为我们项目中的许多配置设置使用不同的值web config and app config files 我们希望使用一组合理的默认值来检查这些配置文件 这样通过检查 trunk master 分支 您
  • Git 更新文件时更改默认 umask

    我的 Git 有问题 我在 Google 和 StackOverflow 中搜索了解决方案 但没有任何帮助 问题是 每次 git 更新工作目录中的某些文件时 当我签出分支或合并分支等时 文件权限都会更改 以便添加 可写到组 标志 如果该文件
  • dulwich - 从远程仓库身份验证克隆

    我找不到有关此主题的任何资源 我需要通过提供用户名和密码从私有存储库进行克隆 然而 当它们作为关键字参数提供给 dulwich get client from path 时 会出现错误 提示 未知参数 用户名 这似乎是一件简单的事情 但我找
  • 更快的“git rebase --preserve-merges”方法

    我通过创建一系列功能分支来使用 git 并在完成后将它们合并到 mastergit merge no ff 这会创建空的合并提交 可用于识别先前功能分支的起点和终点 为了处理多个并发分支 甚至嵌套分支 我使用 rebase 我从不合并回去
  • Git core.safecrlf 对具有相同行结尾的文件有不同的行为

    我有带有 VS 项目的 Windows 计算机 并且使用 Visual Studio 和 Cygwin 环境中的工具 包括 Git 有时 编辑后我会在文件中得到不同的行结尾 我想要简单的解决方案来检查文件的行尾一致性 然后再将其发送到存储库
  • 有没有办法显示 Visual Studio 执行的 Git 命令? [复制]

    这个问题在这里已经有答案了 在 Visual Studio Code 中 有一个 显示 Git 输出 菜单项 显示最近运行的 Git 命令 有关其外观的示例 请参阅3 35 在这个视频中 https code visualstudio co
  • 如何在 git merge 提交中列出冲突的文件(父级都有更改的文件)?

    qgit 有一个很好的选择 可以在合并提交中查看 有趣 的文件 其中有趣的文件被定义为在两个父文件中都有更改的文件 查看此类文件的相应命令行是什么 git show name status SHA1 of merge 将向您显示提交消息和在

随机推荐

  • 使用 std::cin 初始化 const 变量有什么技巧吗?

    常见 std cin 用法 int X cin gt gt X 这样做的主要缺点是 X 不能const 很容易引入bug 我正在寻找一些技巧来创建一个 const 值 并只写入一次 天真的解决方案 Naive int X temp cin
  • Mamp 本地主机解析速度非常慢

    当我对 PHP WordPress 网站进行本地更改时 本地主机似乎在 20 30 分钟内没有更新 我使用的是 Mac OSX 10 8 4 并使用 MAMP Pro 我有两个网站 我为它们创建了单独的主机条目 我们称它们为mysite1
  • Windows shell:如何获取音频设备名称?

    我不确定这是否严格来说是一个编程问题 只要我 不介意使用额外的软件来解决问题 只要它保持可编写脚本或命令行即可 这是 非 GUI 解决方案 不管怎样 我已经发布了另一个 有点不同 问题超级用户 https superuser com que
  • 将字符串转换为整数十六进制值“奇怪”行为

    我注意到java不允许我存储大量数字 例如 2000000000 即 20 亿显然是整数类型 但如果我存储相应的十六进制值 即int largeHex 0x77359400 这可以 所以我的程序需要增加到 2 32 刚刚超过 42 亿 我测
  • WSO2 MDM iPhone 配置文件安装问题(无效的 DER 编码,未结束)

    我正在为 iPhone MDM 使用 WSO2 3 2 0 IOT 服务器 并按照网站中的说明安装它 我生成了 MDM APNS 证书 并将其添加到服务器上的 ios 配置中 在为 MDM 注册 iPhone iphone 6 时 我在 i
  • PyPI 包的可选依赖项

    我想创建一个新的PyPI https pypi org 包 但这将有一个特殊的轮子 我将像这样调用它 pip install misoftware customer1 这可能吗 如果是这样我怎样才能提供补丁 customer1 例如我的主要
  • 如何向 link_to 外部 URL 添加参数?

    在我的 显示用户 页面中 我想添加一个指向外部网站的链接 并将一些值保存在作为参数传递的表中 我的第一部分工作正常 这很简单 但我还想传递一些保存在数据库中的参数 例如 user email user first name etc 所以基本
  • BigQuery - 替换字符串中的空格

    我的头发在这里变白了 我有一个表 其中有一列我想删除其中的空格 预期结果 8 800 000 克朗 gt 8800000 克朗 我无法让它发挥作用 请参阅下面的查询输出 为什么空白没有被删除 当我对模拟数据执行查询时 它起作用 第一个示例中
  • bazel.rc 中的默认、特定于平台、Bazel 标志

    我想知道特定于平台的默认 Bazel 构建标志是否可能 例如 我们想使用 workspace status command但这必须是 Linux 上的 shell 脚本 并且必须指向 Windows 上的批处理脚本 有没有一种方法可以让我们
  • 如何使用 Java 中的 Log4j 逐步配置 jboss 6.x 中的日志记录

    大家好 我是 Jboss 的新手 所以我在 Jboss 6 1 中设置日志记录时感到困惑 我做了什么 我已经下载并解压了 Jboss jboss eap 6 1 在我的机器上然后我按照中给出的步骤操作this http www master
  • 无 DOM、静态类型、提前编译的 JavaScript 代码与本机代码的性能相比如何?

    为什么 Javascript 比本机代码慢 的传统答案是 因为它被解释了 这种说法的问题在于解释并不是语言本身的品质 事实上 现在大多数 Javascript 代码都经过 JIT 处理 但这还远未接近本机速度 如果我们从方程中删除解释因素并
  • 在不登录的情况下在AWS EC2实例上部署docker容器

    我是微服务的初学者 今天花了几个小时研究 AWS 最微小的痛苦事情 非常感谢任何专家的建议 因为我怀疑下一步很小 但可能需要几个小时才能解决 所以我部署了一个 Nano 实例ssh进去 不得不实际重做它来修复安全组 但无论如何它最终起作用了
  • ASP.NET Core WebApi

    我正在尝试使用新的 NET Core 制作一个 Web api 但使用时遇到一些麻烦 HttpPost 当我使用邮递员时 它不会返回任何内容 另外 当我在返回线上放置断点时 它永远不会被命中 这是我在控制器中的方法 POST api val
  • 从嵌套列表中提取然后 row.bind data.frames

    我有一个输出大矩阵 Mat1 和小数据帧 Smalldf1 的函数 我将它们存储在名为 Result 的列表中 该函数在循环内运行 因此我创建了 结果 列表的许多版本 直到循环结束 每次我将它们添加到名为 FINAL 的列表中时 在循环结束
  • 如何通过 Django 在视图中获取上传的文本文件?

    我现在正在制作网络应用程序 该应用程序获取具有未组织数据的文本文件并对其进行组织 我现在在Python3中使用Django 我已经在模板中制作了表单数据 Teplates gt
  • 启动前检查 .NET 依赖项

    我有几个正在开发的应用程序 并且喜欢将其分发给需要 Microsoft 提供的 dll 和 或框架的朋友 具体来说 XNA 我厌倦了从他们那里收到说 它崩溃了 的电子邮件 而实际上 发生的只是他们没有安装 XNA 或 NET 3 5 或其他
  • 如何使用完全独立的 .NET 4.0 安装程序制作 WiX 3.5 安装程序?

    继续上一个问题我在这里问 https stackoverflow com questions 1128734 how do i make a wix installer with a completely self contained ne
  • 使用嵌套属性“无法批量分配受保护属性”

    我见过与此问题相关的其他问题 但到目前为止 答案对我不起作用 我正在尝试创建一个注册用户并同时创建组织的表单 用户和组织通过分配表关联 这是我的表格 form for resource as gt resource name url gt
  • 引用什么时候是转发引用,什么时候是右值引用?

    我知道转发引用是 对 cv 不合格模板参数的右值引用 例如 template
  • Git rebase:合并非后续提交

    到目前为止 我知道有一种很好的方法可以使用 git rebase interactive 来组合提交并更改提交消息 出现以下情况 git rebase interactive HEAD pick 5b7c140 commitA pick 4