git rebase 删除提交

2023-11-22

我的 git 存储库中有以下更改历史记录:

---X---Y---Z---A---B---C

我从代码 Z 的基础开始工作,并进行了 A、B 和 C 三个更改。这些更改中的每一个都已作为单独的评论上传到 Gerrit 上,并且每个更改都取决于之前的更改。

经过审查后,我想删除更改 A,以便我的更改历史记录为:

---X---Y---Z---B---C

正确的流程是怎样的git rebase -i and git commit让它发挥作用?

我假设如下:

  1. Use git rebase -i HEAD~3显示最后三个提交。这显示了文件内容:

    pick 1234567 Commit A message
    pick 1a2b3c4 Commit B message
    pick abcdefg Commit C message

  2. 然后我可以删除第一行并保存文件以删除第一个提交。

  3. 这就是我陷入困境的地方......如果我尝试git commit --amend我只能修改 C 的提交。因此我不知道如何将我的 rebase 更改推送到 Gerrit 进行审查repo upload . or git push

我使用的是 Gerrit 2.2,因此审核页面上没有 rebase 按钮​​。


以下步骤现在对我有用:

  1. 使用 git rebase -i HEAD~3 显示最后三个提交。这显示了文件内容:

    pick 1234567 Commit A message
    pick 1a2b3c4 Commit B message
    pick abcdefg Commit C message

  2. 然后我可以删除第一行并保存文件以删除第一个提交。

  3. A git log现在显示我的 B 和 C 在 Z 基数之后的变化,以及它们的新 SHA-1 值

  4. 然后我可以将每个更改单独推送到各自的评论中:

    git push ssh://myserver:29418/project SHA1_of_B:ref/changes/123
    git push ssh://myserver:29418/project SHA1_of_C:ref/changes/789

Where 123 and 789分别是变更 B 和 C 的审核编号。我的 B 和 C 更改都有新的补丁,并且已正确重新调整基础。

原来我的问题只是理解我必须git push两者都单独改变。

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

git rebase 删除提交 的相关文章

  • Gerrit 安装后无法克隆所有项目存储库

    我有一个新设置的 Gerrit 实例 目前只有两个存储库 所有项目 binutils 测试 尝试克隆所有项目时 我收到以下错误 git clone ssh user hostname 29418 All Projects Initializ
  • 如何修复树与树之间的 Git 错误断开链接?

    我的事务被中断 当我再次尝试时 我遇到了空或损坏的对象错误 在另一个问题之后 我删除了所有空文件 当我运行时 git fsck full 我收到这个错误 Checking object directories 100 256 256 don
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • DVCS命令的统一

    当处理多个 开源 项目时 多个版本控制系统开始出现问题 虽然它们共享共同的操作 但我经常在输入时犯错误hg add反而git add 我记得前段时间看到过一个项目 通过提供基本命令以统一的方式访问不同的源代码控制软件提交 ci add等在外
  • Git:如何变基到特定提交?

    我想变基到特定的提交 而不是另一个分支的 HEAD A B C master D topic to A B C master D topic 代替 A B C master D topic 我怎样才能做到这一点 您可以通过在您喜欢的提交上创
  • Jenkins git 插件 - 有时太慢

    以下内容摘自 Jenkins 日志 00 00 03 135 gt git fetch tags progress email protected cdn cgi l email protection some org some repo
  • git diff 在尖括号中显示 unicode 符号

    我有一个带有 unicode 符号 俄语文本 的文件 当我修复一些拼写错误时 我使用git diff color words 看看我所做的改变 如果是 unicode 西里尔文 符号 尖括号会造成一些混乱 如下所示 cat p1 cat p
  • 如何从 android.googlesource.com 或 github.com 下载单个目录?

    我想下载 https android googlesource com platform frameworks base git master tools aapt https android googlesource com platfo
  • git push heroku master 权限被拒绝

    我正在关注 ruby railstutorial 我运行命令 git push heroku master 它吐出了这个错误 Permission denied publickey fatal Could not read from rem
  • git pull,忽略深度,如何不拉取整个历史记录?

    我们有一个巨大的多 GB git 存储库 主要是二进制对象 克隆需要几天时间 实际的主分支 没有历史记录 只有大约 20MB 所以我想 深度为 1 的 git 克隆就是解决办法 然而 现在我需要将某人的更新拉到主服务器 我们没有分支 当我拉
  • Git:显示分支之间的差异,忽略合并的提交

    我的存储库历史记录看起来像这样 x y z branch a b c d e master 我想获得 branch 完整历史记录的单个差异 即 像 git diff 输出 我不想要像 git log p 产生的一大堆差异 而不包括任何从 m
  • 有没有办法让 git flow 显示它在幕后执行的命令?

    有什么方法可以让 git flow 提前告诉我当我执行 flow 命令时它将执行的确切 git 命令吗 或者告诉我它是东吗 我只能看到输出和摘要吗 你可以使用Git的GIT TRACE 环境变量 http git scm com docs
  • `git ls-files -s` 输出中不同字段的含义是什么?

    在 Git 中 命令返回的典型结果行git ls files s好像 100755 be2c2e9b0966253096472d4b482c458bc892e493 0 gitignore 这些字段是什么意思 不用再犹豫了git ls fi
  • git 显示已添加到 gitignore 的文件中的更改?

    我已经将 log2 文件夹和 main js 文件添加到 gitignore 如屏幕截图所示 但即使执行后git rm cached r我仍然可以看到 git 正在检测 main js 和 log2 文件夹内文件的更改 怎么会 这些的常见问
  • 第一次使用node.js - “ReferenceError:节点未定义”

    我刚刚安装了node js 我尝试编写应该检查版本的node v 但它不起作用 这是输出 gt node v ReferenceError node is not defined at repl 1 2 at REPLServer self
  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • 默认情况下 git merge -Xignore-space-change

    我该如何设置该选项ignore space change对于所有合并使用git config 我也许可以使用别名merge 但因为我希望该设置应用于git stash pop git stash apply git pull and git
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • 在 Azure DevOps 项目之间移动存储库时保留拉取请求

    我在同一帐户内有两个 Azure DevOps 项目 我想将存储库从一个项目移动到另一个项目 这一页探索如何在具有完全保真历史记录的团队项目之间移动 git 存储库 https learn microsoft com en us azure
  • 当 .gitattributes 中的 EOL 设置为 CRLF 时,Git diff 认为行结尾为 LF

    当我恢复对带有 Windows 行结尾的文件的更改并且 gitattributes 将 EOL 定义为 CRLF 时 git 认为行结尾已更改为 LR 即使十六进制编辑器显示 CRLF 仅当 gitattributes 定义 EOL 字符时

随机推荐

  • 当我使用 cakephp 时,我应该把 PIE.htc 文件(用于使 IE 与 CSS3 一起工作)放在哪里

    我正在尝试使用PIE htc 这是一个脚本 希望能让我在 IE6 8 中使用 CSS3 功能 我也在使用 Cakephp 我越来越喜欢它 根据说明 我只需将 PIE htc 文件粘贴到我想要的任何位置 然后添加behavior url pa
  • 如何理解Java语言规范中的易失性示例?

    我认为Java规范中的挥发性示例有点错误 在 8 3 1 4 中 易失性字段 它说 class Test static int i 0 j 0 static void one i j static void two System out p
  • 嵌套循环除以 2 的复杂度

    我试图使用 Big O 表示法计算出 for 循环的复杂性 我之前在其他课程中也做过这样的事情 但是这一个比其他课程更严格 因为它是基于实际的算法 代码如下 for i n i gt 1 i 2 for any size n for j 1
  • 如何在 Visual Studio 中禁用 ReSharper 并再次启用它?

    我安装了锐锐 并且它可以在 Visual Studio 中运行 但我如何禁用它 每当我在 ReSharper 菜单中搜索时 我都找不到禁用选项 You can disable ReSharper 5 and newer versions b
  • AWS Lambda w/ SQS 触发器、SQS Lambda 目标,永远不会添加到目标队列

    我有一个简单的 lambda 函数 它是从 SQS 队列触发的 我正在使用新的拉姆达目的地功能 它被设置为从以下位置触发QUEUE A 对payload body做一些修改 然后发送到QUEUE B on success or QUEUE
  • 用户无权对资源执行:SNS:CreateTopic

    我想使用 CloudWatch 监控某些参数 TotalErrorRate 和延迟 并且当引发 cloudWatch 警报时 我想要一个 简单通知服务 SNS 向我发送电子邮件 EscalationTopic Type AWS SNS To
  • sql server 2008中可以有数组类型数据吗

    sql server 2008中可以有数组类型数据吗 目前我正在使用逗号分隔值作为数组值 SQL Server 2005 支持表值变量 declare arr table col1 int insert arr col1 values 3
  • 在 python 中打印断言的成功消息

    我在 python 中使用断言 每次断言失败时 我都会收到失败消息 我会将其打印出来 我想知道是否有办法在断言条件通过时打印自定义成功消息 我正在使用 py test 框架 例如 assert self clnt stop io 1 IO
  • 使用宏创建 QObject 派生类

    我正在尝试简化 即摆脱大量样板代码 的创建QObject转发其他属性访问的包装类QObject派生类 从小处开始 我只是尝试使用一个属性 Sy test h The wrapped class class Sy test public QO
  • 如何使用 MPI_Reduce 独立地对来自不同处理器组的不同值求和

    我试图将我的处理器分为几组 然后添加每组的总和 独立地 但直到现在我都无法正确找到结果 一个简单的例子如下 int main int argc char argv int size rank i 0 localsum1 0 globalsu
  • Python Requests 包:处理 xml 响应

    我非常喜欢requests包及其处理 JSON 响应的舒适方式 不幸的是 我不知道我是否也可以处理 XML 响应 有没有人有过如何处理 XML 响应的经验requests包裹 是否需要包含另一个包来进行 XML 解码 requests不处理
  • 当 NSString 包含表情符号时如何获取 NSString 大小?

    我目前正在使用 CGSize sizeWithFont UIFont font constrainedToSize CGSize size lineBreakMode UILineBreakMode lineBreakMode 获取 NSS
  • 如何在 jQuery 中制作实时自定义事件

    jQuery 有一个非常方便的事件绑定器 称为 live 它将动态添加事件到 DOM 元素 甚至对于稍后将添加到 DOM 的元素 问题是它只适用于特定事件 在文档中列出 我真的很想举办现场活动来聚焦 模糊和改变 但目前现场不支持 此外 如果
  • WP Rest API + AngularJS:如何抓取特色图像以显示在页面上?

    我正在通过 HTTP REST API 插件访问 WordPress 数据 此 WordPress 插件 http v2 wp api org 我知道如何获取我的帖子标题 但如何使用此插件显示与该帖子相关的特色图像 我的测试显示了帖子标题和
  • 将 (0/1) 字符串加载到位数组中

    将 10101011101010 这样的字符串直接加载到新的字符串中最聪明的方法是什么位数组 不是字节数组 这些位的顺序应与列表中的顺序相同 您可以使用 LINQ 来做到这一点 var res new BitArray str Select
  • 在缩略图悬停时显示更大的图像

    对于图像列表 我有方形缩略图的网址http example com img1 thumb jpg以及原始尺寸 任何比例 http example com img1 jpg 我在网格中显示缩略图 当用户将鼠标放在网格中的图像上时 我想显示原始
  • 如何使用学说在单个查询中获取整个树?

    此片段来自官方网站按预期工作 treeObject Doctrine getTable Category gt getTree rootColumnName treeObject gt getAttribute rootColumnName
  • 将变量从 shell 脚本传递到 applescript

    我有一个 shell 脚本 我称之为使用osascript 然后osascript调用 shell 脚本并传入我在原始 shell 脚本中设置的变量 我不知道如何将该变量从 applescript 传递到 shell 脚本 如何将变量从 s
  • 如何将 ExifInterface 与流或 URI 结合使用

    我正在编写一个应用程序 可以从 Android 中的 共享方式 菜单发送照片 URI 您获得的 URI 类型是content media external images media 556然而ExifInterface想要一个标准的文件名
  • git rebase 删除提交

    我的 git 存储库中有以下更改历史记录 X Y Z A B C 我从代码 Z 的基础开始工作 并进行了 A B 和 C 三个更改 这些更改中的每一个都已作为单独的评论上传到 Gerrit 上 并且每个更改都取决于之前的更改 经过审查后 我