git - 如何获取足够的提交以在浅克隆中进行 merge

标签 git merge shallow-clone

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

为了能够进行 merge ,我获取越来越多的提交(git fetch 随着 --depth 的增加)直到我有 merge-commit 掌握 pull 请求。

然而,它并不是每次都有效。看起来我不仅需要 merge 基础,还需要 master..merge_base 范围内的每个提交。但是我不确定该怎么做。

因此,问题是:如何获取足够的历史记录来进行 merge ?

最佳答案

如果您有 featuremaster 分支的历史,但不想要 master 的完整历史,那么您可以估计分支日期并使用;

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

很难使用任何其他形式的 git fetch 来做你想做的事情(查询 merge 库的远程),因为 git fetch 获取引用。可能没有您正在寻找的引用。

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

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

关于git - 如何获取足够的提交以在浅克隆中进行 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27059840/

相关文章:

svn - 如何使用 Tortoise SVN 将 SVN 合并到分支 (SVN 1.6)

sql-server - 合并命令是否进行合法更新?

git 致命 : error in object: unshallow <SHA-1>

python - 在没有 git 的情况下分配目录的 git SHA

git - 如何在 GIT 中按名称搜索标签?

linux - 如何使用 git-archive 获得 GNU tar 的 --strip-components 的效果?

git: 查找 `mine` 中不存在的最旧提交 `theirs`

r - 合并r中具有相同行名的2个数据帧

java - 如何浅克隆未实现 Cloneable 的实例?

javascript - JS 递归对象赋值