git 分离子文件夹导致的问题

2020-12-27 07:02:38 +08:00
 JCZ2MkKb5S8ZX9pq

提问

2465 次点击
所在节点    git
9 条回复
blakejia
2020-12-27 09:47:15 +08:00
git submodule?
JCZ2MkKb5S8ZX9pq
2020-12-27 09:50:31 +08:00
@blakejia 现在已经不是拆分的问题了,是整理既有的 git 历史记录的问题。
favourstreet
2020-12-27 10:04:54 +08:00
如果楼主以为不该存在的文件实际上却是可达的,git 说什么也不会替你删除。如果是不可达的( unreachable, dangling ),git 不会自动删除还未过一个月期限和已经打包进 pack 的 object,所以,git reflog expire --expire=now --all ; git gc --prune=now ; git repack -a -d 来一套
JCZ2MkKb5S8ZX9pq
2020-12-27 12:11:15 +08:00
@favourstreet 应该是远超一个月了,要不是用了 BFG,我都不知道以前竟然还把 pdf 和 psd 也 commit 了。

现在从 git log 或者各个 gui 看,都只能看到 filter 的结果,也就是包含我目前目录的一些 commit 。
请问具体我怎么能看到其他的内容呢?我 git 就用些基础功能,不太熟悉,请赐教。
codehz
2020-12-27 13:08:56 +08:00
(要不你去.git/objects 里找找大文件?然后 git cat-file 的方式看看是啥内容
favourstreet
2020-12-27 13:19:05 +08:00
@JCZ2MkKb5S8ZX9pq 我只能说从楼主的措辞来看 BFG 帮楼主看到了文件名,这意味着那些文件仍在 git 管理之下,楼主最好检查一下当初 subdirectory-filter 是否漏了什么,比如漏了 branch 或 tag 之类的 refs
SoloCompany
2020-12-27 17:56:55 +08:00
用了 BFG 之后, BFG 的源文件也需要使用 filter-branch 删掉啊
JCZ2MkKb5S8ZX9pq
2020-12-27 21:18:29 +08:00
@codehz

的确大文件就是 objects 里,我不知道怎么看它到底是啥,原本是一整个 200M 的。我去搜下你说的这个命令。
newdongyuwei
2020-12-28 10:06:37 +08:00
推荐试试 git-filter-repo: https://github.com/newren/git-filter-repo

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/739307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX