如何将 git 补丁从一个存储库应用到另一个存储库?

2024-03-06

我有两个存储库,一个是库的主存储库,另一个是使用该库的项目。

如果我对从属项目中进行修复,我想要一种简单的方法来将该补丁应用回上游。

该文件在每个存储库中的位置都不同。

  • 主要仓库:www.playdar.org/static/playdar.js
  • 项目:playlick.com/lib/playdar.js

我尝试使用git format-patch -- lib/playdar.js在 playlick 项目上,然后git am在主 playdar 存储库上,但补丁文件中的不同文件位置引发了错误。

有没有一种简单的方法可以将给定文件上的给定提交的补丁应用到其他地方的另一个任意文件?

为了加分,如果您要应用补丁的文件不在 git 存储库中怎么办?


如果手动编辑补丁文件是不可能或不可行的,可以使用标准选项来完成(可在git apply, git format-patch和GNUpatch).

  1. -p<n>删除n补丁中路径的前导目录。

  2. 加工后-p, --directory=<root>前置root在应用之前修补到补丁中的每个路径。

Example

因此,对于您的示例,要获取最初的补丁static/playdar.js并将其应用到lib/playdar.js,你会运行:

$ cat patch_file | git am     \ 
          -p1                 \ # remove 1 leading directory ('static/')
         --directory='lib/'     # prepend 'lib/'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 git 补丁从一个存储库应用到另一个存储库? 的相关文章

  • 如何使用开发分支中的一行命令更新本地 master 并重新设置其基准?

    假设我正在一个名为dev那就是跟踪master 如果我想更新我的主分支 我需要经常运行这一系列命令 git checkout master git pull git checkout dev git rebase i master 当我在
  • Git checkout 分支从其他分支留下目录树

    我有一个branch2 其源是branch1 并重命名了源自branch1 的目录 当签出branch1时 重命名的目录仍然存在 但没有标记为未暂存的修改 重命名的目录当然不会作为branch1 上的提交出现 为什么会出现这种情况 上述目录
  • 如何在 github 中拉取请求时忽略或排除文件

    我们有 4 个分支 1 dev 2 qa 3 staging 4 master 我们要更新并添加1 dev中的CODEOWNERS文件中的一些人 2 qa到4 master的CODEOWNER文件将被保留 因为 1 dev 有 4 个审稿人
  • Git 大文件存储与 Google 云存储

    我是该项目的一部分 我们使用 git 存储库托管在谷歌云源代码库 https cloud google com source repositories 现在我们使用谷歌云存储 https cloud google com storage 存
  • CodeCommit 错误 Elastic Beanstalk (AWS)

    运行后 pip install upgrade awsebcli 尝试执行以下操作时出现以下错误 eb deploy 无法将代码推送到 CodeCommit 存储库 错误 CommandError 处理 git 命令时发生错误 错误代码 1
  • 为什么 git 在 git add 上出现“断言失败”错误?

    我分叉了一个存储库 然后将其克隆到我的 Mac 上 YATC目录 我在另一个目录中有一个先前创建的 Xcode 项目 TwitterTimeline 我将其复制到 YATC directory I did git add 在 YATC 目录
  • 预提交钩子 git 错误

    我正在尝试在 python 中执行预提交 git hook 以检查文件的行长度是否小于 80 个字符 但是我收到没有此类文件 目录的错误 我在 fedora 上并设置了 usr bin python help 将不胜感激 usr bin e
  • 为什么“git diff”在“git add”之后报告没有文件更改

    这是为什么git diff认为没有变化 即使git status将它们报告为modified git status On branch master Your branch is ahead of origin master by 2 co
  • 从 bazaar 转换为 git 并同步它们的正确方法

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

    我只是将一些更改提交到我的功能分支之一 feedback tab 然后签出 master 并将它们合并到那里 我实际上打算将它们合并到我的 开发 分支中 现在 master 领先于 origin master 其远程 17 个提交 我还没有
  • Git Grep 颜色选项解释和/或比较

    我正在尝试自定义我的 Git 颜色 读完后文档 https git scm com docs git config 我找到了我想要设置的选项 除了 Grep 之外 一切都工作正常 我意识到 我过去并没有真正使用过它 我想用相同的调色板为其设
  • Git Visual Studio 与 Bitbucket confluence 连接到现有项目错误/获取失败

    如何使用 Visual Studio 17 从现有 Bitbucket GIT 存储库中提取数据 Error git 因致命错误而失败 找不到 xyz 存储库 I added 这个迷雾 https marketplace visualstu
  • 使用 Git 和 Eclipse 管理 Android 项目

    我相信我有一个非常常见的问题 它会影响具有多个应用程序版本的开发人员 在我的例子中 我有两个 付费版本和免费版本 为了管理这两个版本 我使用具有 2 个不同分支的同一个 git 项目 免费和付费 然而 我的源代码包名称彼此不同 如预期 并且
  • 如何在 NetBeans 中执行“git Blame”?

    NetBeans 内置了对 git 的支持 我可以做一个git blame在 NetBeans 内 如果是这样 怎么办 I googled https www google nl search q netbeans git blame它 但
  • Git 合并如何处理同时提交?

    给定一个具有两个分支的存储库 每个分支都有独立的提交 Branch Commits final e g i master a b c d f h 上图中的字母很重要 即 master 和 final 同时正在开发中 并且必须保留两个分支中的
  • 使用 Documents4j 将 Doc 转换为 PDF

    我想尝试使用 Documents4j 将文档转换为 PDF 我按照此处的说明进行操作http documents4j com develop http documents4j com develop 当我打字时mvn package然后按回
  • git push origin master 失败

    我正在尝试将现有文件夹上传到 gitHub 按照说明 我在 Windows 中输入了以下内容 git remote add origin email protected cdn cgi l email protection myname m
  • TortoiseGit 与 TortoiseSVN 并存?

    我已经使用 TortoiseSVN 好几年了 但我正在考虑慢慢改用 git 因为我真的很喜欢它的分支和合并 我目前正在通过命令行使用 git 但正在考虑安装 TortoiseGit 有人有并排使用两只乌龟的经验吗 这有什么已知的问题吗 我真
  • 无法通过 HTTPS 克隆私有 Github 存储库

    我在通过 HTTPS 克隆私有 GitHub 存储库时遇到问题 如果我尝试使用以下方式克隆我的存储库 git clone https github com username repository 我收到错误 fatal remote err
  • 在家庭和办公室进行开发,GIT 会比使用 xcopy 的 SVN 更容易吗?

    如果出于安全原因 源代码只能存储在我的家庭计算机和办公室计算机上 如果传输代码的唯一方法是 USB 密钥 那么哪种源代码控制是最好的 SVN还是GIT 注意 两台计算机之间没有网络连接 我推荐git 无论哪种方式 您都需要 USB 密钥上的

随机推荐