如何让我的git repo更小

问题描述 投票:0回答:2

我有一个git repo,我每天都会多次自动提交,但现在git存储库变得越来越大,需要一段时间才能克隆到其他设备上。我想知道减少我的存储库最简单的方法是什么。有没有办法删除旧的提交以减少我的存储库大小?

git version-control scalability
2个回答
1
投票

git提供了git gc命令和git repack来改进维护旧的和胖的存储库。还有一些未编写的规则可以帮助防止当前存储库快速增长(即使用lfs来存储大文件等)。

使用this获取更多细节。


1
投票

要删除master分支上超过一周的提交,您可以使用以下步骤:

  1. 获取命令需要保留的最后一周的提交 git log --oneline --since="one week ago" master 然后你将在最后一周获得如下提交(最新提交在最顶层,最旧提交在底部): d1fc497 (HEAD -> master, origin/master, origin/HEAD) message5 ac89b87 message4 8c3e839 message3 d4ffc42 message2 3f1d63a message1 第一个/更早的提交3f1d63a需要在以下步骤中使用。
  2. 从您要保留的第一个提交中签出一个孤立分支(如上例中的提交3f1d63a): git checkout --orphan temp 3f1d63a git commit -m 'init commit'
  3. 基于temp分支重新推出最后一周的提交,并强制推动master分支: git rebase --onto temp 3f1d63a master git push -f origin master

现在master分支将只包含过去一周的提交。


要删除本地git仓库中的无用对象,可以使用以下命令:

rm -Rf .git/refs/original
rm -Rf .git/logs/
git gc
git prune --expire now

现在你的本地回购邮件的大小应该更小。

© www.soinside.com 2019 - 2024. All rights reserved.