社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

从git索引中删除大文件并同步所有分支

Joey O • 5 年前 • 1333 次点击  

使用git filter分支删除索引后,同事的推送操作将旧索引带回来。

我运行了一个bitbucket repo,它的大小增长到了2gb以上,变成了只读的。为了恢复这种情况,他们建议重置为以前的提交,并使用git filter分支清理我的索引。我成功地做到了。完成此操作并进行修剪后,我的本地大小大小包(git count对象)降至300MB。不过Bitbucket只降到了1.2GB,我不明白有什么区别,但还有一个更大的问题。

当我的同事,也使用那个分支,推动更多的变化,大小跳回到超过2GB。显然,他们仍然在本地拥有索引(尽管他们已经先做了git拉取)。

我运行的命令是…

git filter-branch --force --index-filter 'git rm -r --ignore-unmatch NAME_OF_DIRECTORY_I_DONT_WANT_ANYMORE' --prune-empty --tag-name-filter cat -- --all

对所有相关目录重复,然后:

git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d

git reflog expire --expire=now --all

git gc --prune=now --aggressive

git push --all --force

1)我不明白发生了什么事,有人能告诉我吗?

2.)当我通过git filter branch、pruning等方法再次修复这种情况,并推送到服务器上时,如何确保我的同事也得到这些更改?所以我们不会一直重复这个循环?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44303
 
1333 次点击  
文章 [ 1 ]  |  最新文章 5 年前