如何在 git 树的顶部应用补丁以防止重复?

2024-03-23

我正在为一个我认为很简单的问题寻求建议,并且通过创建一个小脚本确实可能很简单,但我认为应该已经有一种方法可以使用 git/quilt/stgit 来做到这一点。

我不太擅长 git,这给我带来了一些问题。

我的问题: 我有一个 git 树(linux 内核)和一些补丁。发生了什么,这些补丁是针对旧版本的内核的,其中许多已经应用到我的树上。补丁以标题行开头,例如

From b1af4315d823a2b6659c5b14bc17f7bc61878ef4 (timestamp)

并通过做类似的事情

git show b1af4315d823a2b6659c5b14bc17f7bc61878ef4

在我的内核树中,我可以看到它们已经在我当前的树中可用,并且我不想尝试应用它们。

我尝试使用类似的东西git 应用 or git am,但他们似乎尝试应用补丁:

alan@ubuntu:~/Desktop/openwrt/linux-git/linux-2.6.33.y$ git apply -p1 --check --index        /home/alan/Desktop/openwrt/svn/backfire-branch/build_dir/linux-kirkwood/linux-    2.6.30.10/patches/generic/000-bzip_lzma_remove_nasty_hack.patch
error: patch failed: lib/decompress_bunzip2.c:45
error: lib/decompress_bunzip2.c: patch does not apply
error: patch failed: lib/decompress_unlzma.c:29
error: lib/decompress_unlzma.c: patch does not apply

那么:是否有任何命令/util 执行检查补丁是否已应用到当前树上,如果没有,则执行“git apply”,如果有,则跳过补丁?

Thanks.


您可以创建一个版本的新分支(为其制作补丁),然后应用它们并将临时分支合并到主分支中:

git checkout -b temp-branch v2.6.30
git apply/am ...patches...
git checkout master
git merge temp-branch

这应该可以解决大多数重复的补丁(尽管它不会使用提交 ID,而是使用补丁内容)。另外,你可以尝试git rebase在最后一步。

这不是最优雅的方式,但应该可以解决问题。

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

如何在 git 树的顶部应用补丁以防止重复? 的相关文章

  • github 存储库的本地缓存?

    我们使用 github 来管理我们的大量软件环境 我敢打赌 像许多其他组织一样 该存储库的绝大多数流量来自我们的办公室 考虑到这一点 有没有一种方法可以构建给定 github 存储库的本地缓存 但仍然具有云版本的保护 我在缓存代理服务器的模
  • 让 Git 确认之前移动的文件

    我不假思索地手动移动了一堆文件 并且找不到一种方法让 git 识别这些文件只是被移动 而不是实际上不同的文件 除了删除旧的并添加新的 从而丢失历史记录 或使用 git mv 重做所有更改之外 还有其他方法可以做到这一点吗 要让 git 删除
  • 从 JSON 模式动态创建表单 [Angular 8]

    我正在努力从 Angular 8 中的 JSON Schema 创建动态表单 我找到了一些库 但是一个很旧 https github com dschnelldavis angular2 json schema form 上次提交约 2 年
  • 查找重复邮寄地址的策略

    我正在尝试想出一种根据相似度分数查找重复地址的方法 考虑这些重复的地址 addr 1 3 FAIRMONT LINK SOUTH addr 2 3 FAIRMONT LINK S addr 3 5703 48TH AVE adrr 4 57
  • 如何用mock修补模块的内部函数?

    我所说的 内部函数 是指从定义它的同一模块内调用的函数 我正在使用mock http www voidspace org uk python mock 图书馆 特别是patch http www voidspace org uk pytho
  • 如何消除autocrlf造成的损害?

    我已经使用 git 并将 autocrlf 设置为 true 一段时间了 我一直通过 cygwin 与 git svn 一起使用它 这给我带来了很多问题 我明白了here https stackoverflow com questions
  • 带有 OAuth 访问令牌的 GitHub 克隆

    在脚本中 我尝试使用 OAuth 令牌克隆 GitHub 存储库 根据本教程 https github com blog 1270 easier builds and deployments using git over https and
  • 理想的 Android Studio gitignore 文件

    我最近创建了一个 Android 项目 但这是我第一次使用 Android Studio 我将该项目放在 Git 文件夹中 以便能够通过 Git 与其他开发人员远程工作 我发现默认的 gitignore 文件包含以下内容 iml gradl
  • jgit - 基于文件扩展名的 git diff

    我正在使用 JGit API https www eclipse org jgit https www eclipse org jgit 访问 git 存储库 在 git 存储库中 我还存储 txt 文件和其他文件格式 我遇到了一个要求 我
  • 使用 git 在整个文件上“接受他们的”或“接受我的”的简单工具

    我不需要可视化合并工具 而且我也不想必须 vi 冲突文件并手动在 HEAD 我的 和导入的更改 他们的 之间进行选择 大多数时候 我要么想要他们的所有更改 要么想要我的所有更改 通常这是因为我的更改使其上升并通过拉动返回给我 但可能在各个地
  • Git rebase 分支与所有父分支(或依赖子分支)

    是否可以使用 Git 来对分支及其所有父分支进行变基 我认为 父分支 是在这里使用的正确形式 根据您的观点 您也可以将它们称为依赖子分支 但是 遵循提交的父指针将让您到达这些分支 所以恕我直言称它们为 父分支 是公平的 我经常使用分支作为快
  • eGit/ZendStudio 9 生成的 Refspec HEAD:refs/for/refs/heads/master 是什么意思?

    在 ZendStudio 9 中从 Git 设置一个项目 基于 eclipse 和 eGit 它生成一个安静的正常获取引用规范 Remote Fetch Specification refs heads refs remotes origi
  • 从 SVN 转换为 Git 时,如何将修订号放入提交消息中?

    我们将把我们的存储库从 Subversion 转换为 Git 但希望能够保留 SVN 修订号 因为错误跟踪器中的注释会定期引用它 我们将使用git svn clone以及中描述的过程约翰 阿尔宾的博客 http john albin net
  • 如何按会计季度分组的日期计算平均值

    我有下表 Date Country Class Value 6 1 2010 USA A 45 6 1 2010 Canada A 23 6 1 2010 Brazil B 65 9 1 2010 USA B 47 9 1 2010 Can
  • 明确的追溯 .gitignore (如何让 Git 完全/追溯地*忘记*现在在 .gitignore 中的文件)

    Preface This question attempts to clear the confusion regarding applying gitignore retroactively not just to the present
  • 将一些提交移至另一个分支

    我只有一个分支有 git repo A B C D E master 我想将提交 B C 和 D 拆分到另一个名为开发的分支 A E master B C D develop 做到这一点最简单的方法是什么 无需关心远程仓库 做cherry
  • 如何解决yarn.lock中的Git冲突

    当多个 Git 分支修改使用的项目中的依赖关系时Yarn http yarnpkg com 很可能会在yarn lock文件中引入冲突 删除并重新生成yarn lock 文件不是一个好主意 因为这可能会导致多个包意外升级 快速解决此文件中的
  • 来自外部 .diff 文件的交互式补丁

    Linux 是否有命令或程序允许交互式地修补源代码 在屏幕上打印每个块并在将其应用到文件之前等待确认 就像是git add p 但是从另一个 diff 文件中进行更改 您始终可以在 shell ruby python 中编写脚本 逐行读取该
  • 导入数千条记录后无法推送到 Heroku

    我有一个问题 我认为我的 sqlite3 数据库太大 我将大约 100 000 条记录导入到数据库中 并且能够 git Push 和 git Push heroku 现在我可能犯了一个错误 导入了太多记录 500 000 我能够推送到 gi
  • 使用 PostgreSQL 查找并删除重复行

    我们有一个包含以下列的照片表 id merchant id url 该表包含组合的重复值merchant id url 因此 一行可能会出现多次 234 some merchant http www some image url com a

随机推荐