我能否从本地 Git 仓库中丢弃不需要的提交记录?

3
我正在处理一个本地派生的Git存储库,它是Linux内核源代码(66k个文件,870k+次提交,3GB:我喜欢它)的主要版本。当然,在我的机器上许多任务需要很长时间完成,这是一个真正的问题,因为我正在更新我的(定制的)内核。
我想要丢弃早于2014年的每个提交,这将使提交计数减少60%。
mbpe:linux griscom$ git log --format="%ad" --date="short" | cut -c1-4 | sort | uniq -c
   1 1970
   2 2001
  12 2002
   1 2003
  17 2004
16697 2005
29255 2006
33757 2007
48825 2008
52600 2009
49814 2010
56403 2011
65393 2012
71002 2013
75652 2014
75801 2015
77040 2016
80797 2017
79977 2018
58296 2019
   1 2030
   1 2037
   1 2085
mbpe:linux griscom$ 

但是我仍然需要该存储库完全运作,以供稍后提交使用;我需要能够像往常一样拉取和推送(理解由于父提交的年龄而无法完成某些操作)。

是否有任何方法可以处理 Git 存储库,以便移除古老的提交或至少不会减慢 Git 命令的速度?

1个回答

1
你需要的是所谓的“浅克隆”。您可以在 git clone 文档 (https://git-scm.com/docs/git-clone) 中找到相关信息。通常我使用 depth 选项,但听起来您可能更喜欢 --shallow-since

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接