基于合并日期的Git存档

时间:2015-06-26 07:31:59

标签: git merge archive

我可以通过使用此命令知道git签入的合并日期:

git log --after='2015-05-12' --merges

它会在2015年5月12日之后显示修订历史的git日志。

  

有没有办法将它与git archive结合使用?

目标是:

  

将2015年5月12日之后合并的所有修改文件导出为一个   文件夹位置。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

嗯,我认为您的目标可以通过以下步骤达成:

  1. 获取最后一次合并提交的sha1:git log --after='2015-05-12' --merges --pretty=format:%H(那里有更简单的方法来做同样的但是没关系)
  2. 获取HEAD中正在更改的文件列表:git diff <sha1>..HEAD --name-only
  3. HEAD放入存档中,按照上一步收到的列表限制文件
  4. 如果文件数量足够小(即它不超过命令行参数的限制),命令如下所示:

    git diff --name-only $(git log --after='2015-05-12' --merges -n 1 --pretty=format:%H)..HEAD | \
        xargs git archive --prefix changed/ -o some.tar HEAD