我有两个存储库,一个是库的主存储库,另一个是使用该库的项目。
如果我对从属项目中进行修复,我想要一种简单的方法来将该补丁应用回上游。
该文件在每个存储库中的位置都不同。
- 主要仓库:
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
).
-p<n>
删除n
补丁中路径的前导目录。
加工后-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(使用前将#替换为@)