随着时间的流逝,Git 存储库变得越来越大,将大文件添加到 Git 存储库后:
得依赖 BFG,工具地址:https://rtyley.github.io/bfg-repo-cleaner/
使用方法:
git clone --mirror git@gitlab.liebaopay.com:pc_duba/kpdf/pdfreader.git
java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 10M pdfreader.git
cd pdfreader.git
git reflog expire --expire=now --all && git gc --prune=now --aggressive
git remote set-url --push origin git@gitlab.liebaopay.com:pc_duba/kpdf/pdfreader2.git
git remote set-url origin git@gitlab.liebaopay.com:pc_duba/kpdf/pdfreader2.git
git push
遇到的两个问题:
git-filter-branch - Rewrite branches
git remote add upstream git@gitlab.liebaopay.com:pc_duba/kpdf/pdfreader-for-mac.git git fetch upstream git checkout –track upstream/pdfreader_cross-platform 这样就不用换仓库了,加一个新的 remote:(upstream)
E:\kpdf\pdfreader-for-mac\build_script\dumpAnalyzeMacOS.REMOVED.git-id E:\kpdf\pdfreader-for-mac\build_script\gitbigfilex.REMOVED.git-id E:\kpdf\pdfreader-for-mac\build_script\ftpdownload\ftpdownload.REMOVED.git-id E:\kpdf\pdfreader-for-mac\convertmain\pylib\arm64\convert_helper.REMOVED.git-id E:\kpdf\pdfreader-for-mac\convertmain\pylib\x86_64\convert_helper.REMOVED.git-id E:\kpdf\pdfreader-for-mac\enginelibs\lib\mac\engines\debug\gitbigfilex.REMOVED.git-id E:\kpdf\pdfreader-for-mac\enginelibs\lib\mac\engines\release\gitbigfilebuild.REMOVED.git-id E:\kpdf\pdfreader-for-mac\enginelibs\lib\mac\engines\release\gitbigfilex.REMOVED.git-id E:\kpdf\pdfreader-for-mac\lib\macos\dump\gitbigfilex.REMOVED.git-id E:\kpdf\pdfreader-for-mac\lib\macos\kvision\gitbigfilex.REMOVED.git-id 这样就不用换仓库了,改一个新的 remote
7,217 Commits / 114 Branches / 4 Tags / 7.1 GB Files
git@gitlab.example.com:pcapp/kpdf/pdfreader.git
https://gitlab.example.com/pcapp/kpdf/pdfreader.git
git@gitlab.example.com:yqh/pdfreader.git
https://gitlab.example.com/yqh/pdfreader.git
最近迁移 git 项目地址,想保留原有分支和提交。
git clone --mirror old.git (old.git 为老项目的 git 地址)
git clone --mirror git@gitlab.example.com:pcapp/kpdf/pdfreader.git
cd old.git
cd pdfreader.git
git remote set-url --push origin new.git (new.git 为新项目的 git 地址)
git remote set-url --push origin git@gitlab.example.com:yqh/pdfreader.git
git push --mirror // 这一步需要输入新的 git 的账号和密码
git push --mirror