git:更改旧的提交消息而不产生冲突

2024-04-26

我想使用以下命令更改一个相当旧的提交消息:

git rebase -i sha1-of-commit^

这很好,我愿意git commit --amend并编辑消息,但是当我这样做时事情会变得很糟糕:

git rebase --continue

我遇到了多个冲突,但不明白为什么,因为整个冲突解决方案显然已经在过去完成了,并且 git 应该继续前进,直到所有提交都重新确定基础。

如何快速完成变基而不需要处理这些旧冲突?毕竟我只是想更改一个简单的(和旧的)提交消息......


在你的目录中编写一个小脚本/bin名为的目录(或路径中的任何目录)git-reword-commit。 (你可以随意命名,只要名称以git-。无论是否有合并提交,这都会起作用。

#! /bin/bash
REV=$1
MESSAGE=$2
FILTER="test $(echo '$GIT_COMMIT') = $(git rev-parse $REV) && echo $MESSAGE || cat"
git filter-branch --msg-filter "$FILTER" -- --all

要使用,执行

git reword-commit <commit> 'new message'

Warning:这将重写许多提交,因此适用于 rebase 的相同问题也适用于此处,即,您在推送时需要强制,其他用户必须了解这一点。

Git 将您的原始引用(来自过滤器分支之前)放入.git/refs/original。您可以使用以下别名来撤消/确认任何过滤器分支命令。

git config alias.undo-filter-branch '! DIR=$(git rev-parse --git-dir); cp -r $DIR/refs/original/refs/ .git/; rm -r $DIR/refs/original/'
git config alias.confirm-filter-branch '! DIR=$(git rev-parse --git-dir); rm -r $DIR/refs/original/'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git:更改旧的提交消息而不产生冲突 的相关文章

  • 从 bazaar 转换为 git 并同步它们的正确方法

    我在 bazaar 中有一个开发存储库 我想将其转换为 git 并保持同步 我需要这个 因为我将与不了解 bazaar 的人分享我的代码 首先我需要将我的 bazaar 存储库转换为 git 我用谷歌搜索了一下 发现this http as
  • 撤消 git merge(尚未推送)

    我只是将一些更改提交到我的功能分支之一 feedback tab 然后签出 master 并将它们合并到那里 我实际上打算将它们合并到我的 开发 分支中 现在 master 领先于 origin master 其远程 17 个提交 我还没有
  • git merge 中“递归合并模式”旁边的这些符号是什么?

    当我使用git pull project name master为了更新我的核心文件 我在 递归合并 下得到了一堆绿色的加号和红色的减号信号 这些符号是什么以及它们的含义是什么 这是一个屏幕截图 感谢您的帮助 这是已更改的行数的近似值 优点
  • git推送失败:`拒绝更新签出的分支:refs/heads/master`

    我想将我对 JBoss 配置的本地修改存储在 git 中 为此 我设置了以下结构 lrwxrwxrwx 1 jboss jboss 19 Jan 24 11 53 current gt jboss as 7 1 0 CR1b drwxr x
  • Git Visual Studio 与 Bitbucket confluence 连接到现有项目错误/获取失败

    如何使用 Visual Studio 17 从现有 Bitbucket GIT 存储库中提取数据 Error git 因致命错误而失败 找不到 xyz 存储库 I added 这个迷雾 https marketplace visualstu
  • Git 合并如何处理同时提交?

    给定一个具有两个分支的存储库 每个分支都有独立的提交 Branch Commits final e g i master a b c d f h 上图中的字母很重要 即 master 和 final 同时正在开发中 并且必须保留两个分支中的
  • 具有服务器端挂钩的托管 Git 解决方案?

    已经有一个类似的 版本控制托管解决方案 带有预提交挂钩 关于SO的问题 然而 提出这个问题的用户只需要客户端钩子 我正在寻找一个允许您配置的 Git 主机服务器端 hooks 我寻找这个的原因是为了防止开发人员能够在特定分支上 push f
  • 如何在 Android Studio 中使用 git 分支

    我是 git 新手 我有一个非常简单的使用 git 的场景 我的第一个版本是用 Android Studio 编写的 现在我想使用一些新功能 到目前为止我做了什么 在我的 Android Studio 中启用 VCS 从 Android S
  • 添加和提交文件后Git推送不起作用

    I m new to Github and Git tried to use gitbash on Windows After adding and committing files If I add the git push cmd Th
  • 无法通过 HTTPS 克隆私有 Github 存储库

    我在通过 HTTPS 克隆私有 GitHub 存储库时遇到问题 如果我尝试使用以下方式克隆我的存储库 git clone https github com username repository 我收到错误 fatal remote err
  • GIT Rebase 对多个 0.5GB 二进制文件致命

    这个问题本质上是重新开rebase 期间 git 崩溃 https stackoverflow com q 7692944 1286639从来没有答案 我正在尝试从我的 secc 分支进行变基 git rebase main First r
  • 在 Github 提交中强制执行 PEP-8'ish 格式

    是否有任何预制解决方案可以在 Git 提交挂钩中强制执行良好的 Python 标准 有没有办法在本地结帐中自动执行此过程 类似于 Bazaar 可以将提交挂钩推送给客户端 当您签出存储库时 它会安装提交挂钩 这应该足够了 无需运行进一步的工
  • 图表贡献者为空

    我在 github 上有几个项目 但其中一些项目的贡献者图是空的 即使我的 gitconfig 设置了名称和电子邮件 https github com jlengrand batchWaterMarking graphs contribut
  • 变基后无法推送到分支

    我们使用 git 并有一个 master 分支和开发人员分支 我需要添加一个新功能 然后将提交重新设置为 master 然后将 master 推送到 CI 服务器 问题是 如果我在变基期间发生冲突 我无法在变基完成后推送到我的远程开发人员分
  • BitBucket+Jenkins:仅在特定分支更改时触发构建

    以下是该问题的据称解决方案 尽管它看起来确实是一种解决方法 而不是最终的解决方案 有没有一种方法 通过作业配置或 bitbucket 挂钩配置 我可以将作业设置为仅在推送到特定分支时运行构建 是否可以仅从一个特定分支触发 Jenkins h
  • 如何列出当前正在验证的拉取请求中更改的所有文件(在 VSTS 中)?

    我有一个 PR 验证版本 我想列出 PR 中更改的所有文件以及状态 源在每个构建上同步 因此 在合并 PR 更改之前 源位于修订版A 通常origin master 让我将 PR 合并提交指定为B 我当前的实现调用git diff tree
  • 获取引用而不下载对象[重复]

    这个问题在这里已经有答案了 我想检查 origin master 是否与我的 HEAD 不同 I do not想要git fetch 因为它可能非常昂贵 我滥用 git 的方式使得成本高得令人望而却步 任何允许我从远程获取提交列表或顶部提交
  • 理解 git log --stat 输出

    我试图理解的输出git log stat命令 第一个输出 commit 4c90aee323acc337a37040e02a0a3644f4155738 Date Fri May 1 22 46 11 2015 0400 Submittin
  • 在 git 中编辑分支?

    我在 github 网站上创建了一个分支 该分支不在我的本地存储库中 如何将该分支带到我的本地计算机 对其进行编辑 然后将其推送回我的 github 帐户 在本地工作目录中输入 git fetch origin newbranch git
  • Jenkins 多分支管道 - 在分支中配置属性?

    我们已经使用 Jenkins 多分支管道插件成功设置了构建管道 该插件在大多数情况下都运行良好 但是我们遇到了一个困扰我们的问题 Jenkinsfile包含一组属性 这些属性也显示在 UI 中 但如何为各个分支设置默认值 这就是我们的属性定

随机推荐

  • 设备中的嵌套资源

    我是 Rails 新手 我想要一些关于我的路线和正确的路由逻辑的建议 我正在开发一个非常简单的应用程序 用户可以在其中发布列表 用户 设计模型 有很多列表 并且该列表属于一个用户 我的列表中有一个 user id integer 当用户成功
  • Elasticsearch 崩溃后无法恢复

    磁盘空间不足 导致 Elasticsearch 分片崩溃 三个节点现在为红色 两个节点已恢复 它们的状态为黄色 ES 的 CPU 利用率为 150 内存利用率很高 正在尝试恢复它们 但似乎存在一些版本匹配冲突 我清理了磁盘空间并删除了分片的
  • 如何在doctrine2查询生成器where语句中添加运算符

    我试图从一个表中进行选择 其中所选持续时间除以条目持续时间等于没有余数 qb em gt createQueryBuilder gt from AcmeBlogBundle Entry e gt andWhere duration e du
  • Android 和 PhoneGap——在 NPObject 上调用方法时出错

    我正在尝试设置FLAG SHOW WHEN LOCKED在我的phonegap应用程序中 但仅当显示特定页面时 为此 我有一个 Java 插件 扩展自CordovaPlugin在以下代码中execute method if action e
  • MySQL Workbench 连接编码

    在测试一些代码时 我偶然发现了以下 MySQL 错误 Error Code 1267 Illegal mix of collations utf8 general ci IMPLICIT and utf8mb4 general ci COE
  • PHP GD库调整照片大小

    我正在尝试使用 PHP 的 GD 库创建照片的缩略图 以下是我正在采取的步骤 创建GD图像 资源 获取图像的高度和宽度 创建一个空白的 gd 图像资源 高度为 100 像素 宽度适当 将资源图像复制到空白 gd 图像资源并保存这两个图像 这
  • 根据长度将字符串拆分为包含 1-3 个单词的字符串数组

    我有以下输入字符串 Lorem ipsum dolor sat amet consectetur adipiscing elit sed doeiu smod tempor incididunt ut Duis aute irure dol
  • 如何指定 Perl 的 Inline::Python 模块正在使用的 Python 版本?

    我正在运行 Debian squeeze 和 perl v5 10 1 并且安装了两个版本的 python pyversions i python2 5 python2 6 Python Inline显然使用python2 5 perl u
  • 如何在 Netbeans 中向 C++ 项目添加运行参数

    我正在使用 Netbeans 7 0 及其 C 插件 我想做这样的事情 test exe lt in txt gt out txt当我运行该项目时 在 Netbeans 中哪里可以将这些参数添加到项目中 提前致谢 Under File Pr
  • 如何有效地读取屏幕上的数字(pytesseract)?

    我正在尝试读取屏幕上的数字 为此我正在使用 pytesseract 问题是 尽管它有效 但它的作用很慢 而且根本不会产生好的结果 例如 对于这张图片 我可以制作这个阈值图像 它读取的是 5852 而不是 585 这是可以理解的 但有时使用不
  • 解决 Django 的 make_aware 中的 AmbigouslyTimeError

    我有一个代码如下 from django utils timezone import get current timezone make aware make aware some datetime get current timezone
  • 我不明白这个 fork() 的例子

    我有这个代码示例 但我不明白为什么这段代码会创建 5 个进程加上原来的进程 总共6个过程 include
  • Rails Routes - 限制资源的可用格式

    我有一系列资源 我只想通过 JS 格式访问这些资源 Rails 的路线资源为我提供了格式和标准 HTML 有没有办法指定只创建JS格式的路由 您必须将这些路由包装在一个范围内 不幸的是 在这种情况下 约束不能按预期工作 这是此类块的一个示例
  • IntelliJ + Groovy + Spock:没有为模块定义 Groovy 库

    我一直在尝试在 IntelliJ IDEA 中创建一个带有 Spock 测试的 Groovy 项目 以下是我遵循的步骤 创建 Groovy 项目并添加 Maven 支持 添加了 Spock 依赖项和插件 我使用的 POM 与此非常相似 ht
  • Android 底部导航栏重叠 Spinner。设置微调器下拉高度/边距

    我在处理 Android Honeycomb 项目时偶然发现了一个有趣的问题 如下图所示 在对话框中展开微调器时 底部的导航栏会与其重叠 因此 无法选择底部的元素 为了解决这个问题我尝试使用android fitsSystemWindows
  • NSLog 编码错误

    我的以下代码有问题 NSString strValue 你好 char temp 200 strcpy temp strValue UTF8String printf s temp NSLog s temp 代码第一行有两个汉字被双引号括起
  • 以编程方式将 TortoiseSVN 与 C# 或其相关进程结合使用来检查存储库是否是最新的

    有没有办法以编程方式将 TortoiseSVN 与 C 或其相关进程一起使用来检查存储库是否是最新的 我可以使用 System Diagnostics Process 但我不想显示任何 GUI 内容 我没有SVN 它是开源的 所以我可以浏览
  • Visual Basic 6.0 中的无效限定符错误

    在 Visual Basic 6 0 程序中 我有一个字符串 sTemp 我想确保它不包含引号 我有这行 If sTemp Contains Then 但是当我在 sTemp 之后输入句点时 我没有从智能感知中得到任何信息 并且当我尝试编译
  • 对话流 v2 api 中的 app.setContext() ?

    v2 API 中 v1 中的对话流 app setContext 的等效项是什么 考虑到迁移指南概述的设置 如下 例如 当下面的演示代码中触发欢迎意图时 您会进行什么调用来设置上下文 v2 const functions require f
  • git:更改旧的提交消息而不产生冲突

    我想使用以下命令更改一个相当旧的提交消息 git rebase i sha1 of commit 这很好 我愿意git commit amend并编辑消息 但是当我这样做时事情会变得很糟糕 git rebase continue 我遇到了多