gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:33:16 27 4
gpt4 key购买 nike

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

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

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

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

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

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

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

最佳答案

如果手动编辑补丁文件不可能或不可行,可以使用标准选项(在 git applygit format-patch 和 GNU patch 中可用)来完成。

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

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

例子

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

$ cat patch_file | git am     \ 
-p1 \ # remove 1 leading directory ('static/')
--directory='lib/' # prepend 'lib/'

关于git - 如何将 git 补丁从一个存储库应用到另一个存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/931882/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com