我需要将 Git 存储库中的一组提交导出到归档文件中。
我应该如何做?
在 svn 中,我可以选择提交并导出到 zip。
导出某个提交之前的代码库:
git archive -o export.zip <COMMIT>
。将<COMMIT>
替换为您想要导出的提交号。
创建两个提交之间的补丁:
git diff COMMIT1 COMMIT2 > patch.txt
patch -p1 < patch.txt
来部署修改。 - Max NanasyGit有一种方便的方法可以为每个提交创建补丁(patch)。尽管最初是为了格式化补丁以便通过电子邮件发送,但它们也是提取一组更改的方便方法。
您需要的命令是git format-patch
,将这些格式化的补丁应用回git的方式是使用git am
命令。
例如,如果您有两次提交C1和Cn想要导出为一组git补丁,您只需要:
git format-patch -k C1..Cn
这将创建一个编号的补丁集(在您当前的目录中)。每个补丁将是提交的差异,以及提交信息(标题、注释、作者、日期等)。
这比两个提交之间的简单差异文件提供的要多得多。
git format-patch -k C1~..Cn
而不是 git format-patch -k C1..Cn
,因为范围的左侧是 排除 的,所以您必须给出第一个提交的 父级 (~
)。 - nh2