我正在处理源代码中的回归.我想告诉Git:"根据参数化日期/时间检查来源".这可能吗?
我也在目前的观点中进行了改变,我不想失去.理想情况下,我想在当前源和我之前根据之前的日期感兴趣的某些版本之间来回切换.
如何将已克隆的git存储库转换为浅存储库?
git存储库是通过我控制之外的脚本下载的,因此我无法进行浅层克隆.
这样做的原因是为了节省磁盘空间.(是的,我真的很缺乏磁盘空间,所以即使浅存储库存储不多,也需要它.)
我已经试过了
git repack -a -d -f -depth=1
Run Code Online (Sandbox Code Playgroud)
但这实际上使存储库更大.
我只想获取其 base 中不存在的提交branchAbranchB。
例如,考虑一下这段历史:
B1 - B2 - B3 - B4 - B5
\
A1 - A2 - A3
Run Code Online (Sandbox Code Playgroud)
我只想获取A1,A2和A3。需要注意的是,我事先并不知道哪个提交是什么A1,以及我需要获取多少个提交。我的输入只是两个分支的头,在本例中branchA=A3为 和branchB=B5。基于这样的输入,我需要识别A1并获取A1和之间的所有内容branchA,理想情况下仅此而已。
A1或者,获取包含、A2和A3以及足够的信息来识别 的最小提交集A1也可能很有趣。
为什么?branchA在我只需要这些提交(“相对于 发生的变化”)的用例中branchB,获取超过必要提交的内容会减慢我的流程。例如,一个包含数千次提交的大型存储库,以及只有几个提交的功能分支。获取整个历史记录branchA并branchB获取大量我不需要的提交,并且需要大量时间和网络带宽。
我想出了一个丑陋的黑客方法,通过从浅克隆开始,逐步获取越来越多的内容,直到找到共同的提交,来避免获取完整的历史记录:
git clone --depth 1 "$repo" --branch "$branchA" shallow
cd shallow
for ((depth = 8; depth …Run Code Online (Sandbox Code Playgroud)