繁体   English   中英

如何从 git 存储库中提取提交补丁

[英]how to extract commit patches from a git repository

我想从 git 存储库中提取所有补丁,或者至少从选定标签或提交中提取所有祖先。

我需要每个提交作为一个单独的补丁。 每个补丁都应该最终成为它自己的文件。 该命令可以创建目录或 tar 存档。

我能找到的最接近的是git-format-patch ,但它将所有内容作为单个补丁输出。

你可以用git-format-patch来实现:

git format-patch -o patches --root HEAD

它将补丁写入patches目录。 当然,您可以用特定提交的 sha 或某些标签替换HEAD

警告:使用git format-patch -o path/to/folder ,中间目录path/to尚未创建,...意味着命令将失败。

git format-patch -o <outdir> ”相当于“ mkdir <outdir> ”,而不是“ mkdir -p <outdir> ”,这在Git 2.24(2019年第四季度)中得到纠正。

请参阅Bert Wesarg ( bertwesarg ) 提交的 edefc31 (2019 年 10 月 11 日
(由Junio C gitster -- gitster --提交 f1afbb0 中合并,2019 年 10 月 18 日)

format-patch : 创建输出目录的主要组件

签字人:Bert Wesarg

' git format-patch -o <outdir> '相当于' mkdir <outdir> ',而不是' mkdir -p <outdir> '。

避免在可能具有安全隐患的主要目录上使用“ adjust_shared_perm ”。
通过像 ' git init ' 那样暂时禁用 ' config.sharedRepository ' 来实现。

并且(仍然使用 Git 2.24,2019 年第四季度):

请参阅Bert Wesarg ( bertwesarg ) 提交的 19c29e5 (2019 年 10 月 21 日
(由Junio C gitster合并-- gitster -- in commit c555caa ,2019 年 10 月 24 日)

t4014 :使输出目录测试自包含

签字人:Bert Wesarg

正如 Gábor 所指出的edefc31873 中的新测试(“ format-patch :创建输出目录的领先组件”,2019 年 10 月 11 日,Git v2.24.0-rc0 --批处理 #0 中列出的合并)不能独立运行。
解决这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM