gpt4 book ai didi

git - 如何压缩本地 git repo

转载 作者:行者123 更新时间:2023-12-05 00:49:52 28 4
gpt4 key购买 nike

我能否在本地已克隆的存储库上实现 git clone --depth=1 的结果,该存储库具有所有历史记录,而目标是保留所有被忽略的文件?

我有几个 git 项目占用大量空间,我想删除所有 git 历史记录以释放一些空间。谢谢。

更新

更准确地说:

  • 我不想在到处移动文件、删除 repo、重新创建等方面做任何手动工作
  • 我有一些配置文件处于 assume-unchanged 状态,必须保留
  • 我有许多 gitignored 文件必须留在原处

这些原因可以说明为什么我不想重新克隆并在 30 个 repos 上设置所有凭据和东西。

理想情况下,我正在寻找我什至可以在所有项目中批量运行的东西。如果没有这种东西,那我当然可以。

最佳答案

I have several git projects consuming lots of space and I would like to remove all git history to release some space. Thanks

为什么不直接删除项目并使用 git clone --depth --branch ... 重新克隆它?像你一样克隆一个特定的分支和最新的提交。


如何打包你的仓库:

你必须运行 gc 才能做到这一点。

# Expire all the unreachable content and pack the repo in the most 
# compact way.
git gc --aggressive --prune=now

# also clear the reflog as well
git reflog expire --expire=now --all

清理大文件

你应该使用这个工具来清理你的仓库历史:
https://rtyley.github.io/bfg-repo-cleaner/

它是完成此类任务的完美工具

BFG Repo-Cleaner

an alternative to git-filter-branch.

The BFG is a simpler, faster alternative to git-filter-branch for cleansing bad data out of your Git repository history:

  • Removing Crazy Big Files
  • Removing Passwords, Credentials & other Private data

示例(来自官方网站)

In all these examples bfg is an alias for java -jar bfg.jar.

# Delete all files named 'id_rsa' or 'id_dsa' :
bfg --delete-files id_{dsa,rsa} my-repo.git

enter image description here


清理存储库后,使用 this tool存储您的大文件。

enter image description here

关于git - 如何压缩本地 git repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35410336/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com