Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使gitLab存储库包文件大小减小?_Git - Fatal编程技术网

如何使gitLab存储库包文件大小减小?

如何使gitLab存储库包文件大小减小?,git,Git,我以前每个存储库有一个文件夹,然后推送到gitlab。后来我想将所有这些代码分组到一个文件夹包装器中。我已经删除了每个文件夹中的.git -Wrapper // git initiated -Project1 // .git removed -Project2 // .git removed 问题是它推送了以下目录 teams/* dist/* node_modules/* temp/* lib/* 我已经纠正了这些命令的问题 git rm -r --cached . git

我以前每个存储库有一个文件夹,然后推送到gitlab。后来我想将所有这些代码分组到一个文件夹包装器中。我已经删除了每个文件夹中的.git

-Wrapper   // git initiated
 -Project1 // .git removed
 -Project2 // .git removed  
问题是它推送了以下目录

teams/*
dist/*
node_modules/*
temp/*
lib/*

我已经纠正了这些命令的问题

git rm -r --cached .
git add .
git commit -m "Untracked files issue resolved to fix .gitignore"
并在包装器根文件夹中添加了一个.gitignore文件。 存储库仍然显示为80MB

我尝试了以下几点

git filter-branch --tree-filter "rm -rf node_modules" --prune-empty HEAD
git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now
git push origin --force --all
git push origin --force --tags

我试过这个

git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch *node_modules*' \
  --prune-empty --tag-name-filter cat -- --all
git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now
 git push origin --force --all
 git push origin --force --tags


我的存储库仍然是80MB。 有一个选项,就是创建一个新项目,创建一个新文件夹,将所有项目放在文件夹中,git init。。。git推送可以解决这个问题,但我有机会保留我的git历史吗

我用这个命令检查了我的git日志

git log --name-status >1.log
它显示了我在添加节点时的历史记录

$ git count-objects -vH
count: 0
size: 0 bytes
in-pack: 431
packs: 1
size-pack: 1.48 MiB
prune-packable: 0
garbage: 0
size-garbage: 0 bytes


此外,最好的做法是使用新的工具

见本节

放入toBeRemove.txt:

注意:如果在运行上述命令时收到以下错误消息:

Error: need a version of `git` whose `diff-tree` command has the `--combined-all-paths` option`
这意味着你必须这么做

如果本地存储库很好,但远程存储库仍然报告较大的大小,则可能是reflog问题,存储库远程托管服务器自动完成的git gc将在以后修复报告的大小

OP在评论中确认:

联机repo GitLab未更新文件大小。 我刚刚做了一个git克隆,并且repo恢复到1.48MB,问题解决了


我的本地repo显示1.48MB,提交日志显示没有节点模块的记录。联机repo显示80MB,找不到节点模块,提交日志显示没有节点模块的记录。我在git gc之后使用了git push-force,但本地repo与在线repo不同步?@RandomI.T您是否使用git push-force对重写的存储库进行了强制?如果是,远程存储库的reflog中可能仍有旧的历史记录。git-gc最终将摆脱旧的历史。@RandomI.T我的意思是,GitLab最终将自己做git-gc。然后报告的大小将减小。我发现了问题,在线repo gitlab没有更新文件大小。我刚刚做了一个git克隆,并且repo恢复到1.48MB,问题解决了。谢谢你的反馈。我已将其包含在答案中,以提高可见性。
git filter-repo --paths-from-file toBeRemove.txt --invert-paths 
teams/
dist/
node_modules/
temp/
lib/
Error: need a version of `git` whose `diff-tree` command has the `--combined-all-paths` option`