如何获取足够的提交以在浅层克隆中进行合并

时间:2014-11-21 11:04:03

标签: git merge shallow-clone

我正在尝试做什么:测试来自github的拉取请求。我想在本地将pull请求合并到master中并对结果运行一些测试。由于存储库很大,我做了一个浅层克隆。

为了能够进行合并,我获取越来越多的提交(git fetch增加--depth),直到掌握拉请求之间的merge-commit

但是,每次都不起作用。看起来我不仅需要合并库,还需要master..merge _ base范围内的每个提交。我不知道该怎么做。

所以,问题是:如何获取足够的历史记录来进行合并?

2 个答案:

答案 0 :(得分:3)

你需要(我认为),以一种捕获22的方式,git describe --all --first-parent'从适当的分支告诉您给定提交的深度。但是,我不确定如何在进行浅层提取之前从Github获取该信息; - )

答案 1 :(得分:3)

如果您拥有featuremaster分支以来的历史,但又不想掌握完整的母版历史,则可以估计分支日期并使用;

git fetch --shallow-since=<date> origin master

由于git fetch会获取引用,因此很难使用任何其他形式的git fetch来执行所需的操作(查询远程数据库的merge-base)。可能没有您想要的裁判。

您可以使用以下脚本自动进行挖掘。

while [ -z $( git merge-base master feature ) ]; do     
    git fetch -q --deepen=1 origin master feature;
done