减少 .git 文件夹大小

gio*_*gim 5 git github

有这样一个问题,虽然很老,但似乎没有帮助。我有回购。在 repo 中,我有一个大约 6MB 的 gif 文件。它发生了,所以我推送了这个 GIF 的不同版本,显然它们都存储在 .git 文件夹中,这使得 git 文件夹的大小约为 40MB。

从我尝试按照链接问题中的建议运行的项目文件夹中:

   git repack -a -d --depth=250 --window=250
Run Code Online (Sandbox Code Playgroud)

但这并没有影响 .git 文件夹的大小(我是否必须推动才能看到缩小的大小?)。我可以做些什么来减少 .git 文件夹的大小?

同样尝试git gc似乎没有减少 .git 文件夹的大小。

Uly*_* BN 10

一个hacky的解决方案:

git push # ensure that you push all your last commits from all branches, and
         # take care about your stashes as well because we are going to delete
         # everything.
cd ..
rm -rf online-shop
git clone --depth 1 git@github.com:giorgi-m/online-shop.git
Run Code Online (Sandbox Code Playgroud)

最后一行将克隆只有一个提交历史的存储库。

因此,您的.git文件夹会轻得多。但是,您的计算机上不会有完整的历史记录,这可能不是您想要的。

对于想要克隆您的应用程序的其他用户,您可以在README文件中告诉他们可以使用下一个命令来加快下载速度:

git clone --depth 1 git@github.com:giorgi-m/online-shop.git
Run Code Online (Sandbox Code Playgroud)

另一个解决方案是重写 history,将删除所有远程历史记录。你可以在这个答案中看到更多关于它的信息:

删除 .git 文件夹可能会导致 git 存储库出现问题。如果您想删除所有提交历史记录但将代码保持在当前状态,那么这样做是非常安全的,如下所示:

查看

git checkout --orphan latest_branch
Run Code Online (Sandbox Code Playgroud)

添加所有文件

git add -A
Run Code Online (Sandbox Code Playgroud)

提交更改

git commit -am "commit message"
Run Code Online (Sandbox Code Playgroud)

删除分支

git branch -D master
Run Code Online (Sandbox Code Playgroud)

将当前分支重命名为 master

git branch -m master
Run Code Online (Sandbox Code Playgroud)

最后,强制更新您的存储库

git push -f origin master
Run Code Online (Sandbox Code Playgroud)

PS:这不会保留您旧的提交历史记录


归档时间:

查看次数:

5094 次

最近记录:

5 年,11 月 前