我如何使用 BFG 清理 HEAD 中当前不存在的所有 git 历史记录和文件 blob
How do I clean all git history and blobs of files not currently present in HEAD with BFG
我想清除以前删除的所有 blob 和文件历史记录(即不再存在于 HEAD 中),我目前正在 运行 这些命令,但 BFG 似乎删除了所有 blob,包括那些存在的在头部:
git log # Returns 1050 commits
git commit -a -m "Clean the old history and blobs with BFG"
java -jar bfg.jar --delete-files '*' # Delete all files not in HEAD
git log # Still returns 1050 commits, all empty
git diff 5458b2^ 5458b2 # Returns 0 change, while it concerns a protected file
BFG 实际上考虑到了 HEAD 中受保护的文件,例如 gitignore:
Protected commits
-----------------
These are your protected commits, and so their contents will NOT be altered:
* commit 22a1ebd3 (protected by 'HEAD') - contains 1451 dirty files :
- .gitignore (813 B)
- ...
但无论如何它们都被删除了,而它们应该受到保护:
Deleted files
-------------
Filename Git id
----------------------------------------
.gitignore | 091217cf (672 B), 17e3d7c5 (227 B)...
也许您可以尝试使用以下命令来删除所有无法访问的对象。
git prune
或
git gc
我终于使用 that script 来清理存储库中已删除的过时文件。它结合了分支重写和垃圾收集器调用的几个步骤来清理当前存储库。
我设法在 4MB 的新存储库中压缩了 700MB 的重存储库。
像往常一样,在 运行 这种脚本之前复制你的存储库,它可能会导致一些数据丢失!
我想清除以前删除的所有 blob 和文件历史记录(即不再存在于 HEAD 中),我目前正在 运行 这些命令,但 BFG 似乎删除了所有 blob,包括那些存在的在头部:
git log # Returns 1050 commits
git commit -a -m "Clean the old history and blobs with BFG"
java -jar bfg.jar --delete-files '*' # Delete all files not in HEAD
git log # Still returns 1050 commits, all empty
git diff 5458b2^ 5458b2 # Returns 0 change, while it concerns a protected file
BFG 实际上考虑到了 HEAD 中受保护的文件,例如 gitignore:
Protected commits
-----------------
These are your protected commits, and so their contents will NOT be altered:
* commit 22a1ebd3 (protected by 'HEAD') - contains 1451 dirty files :
- .gitignore (813 B)
- ...
但无论如何它们都被删除了,而它们应该受到保护:
Deleted files
-------------
Filename Git id
----------------------------------------
.gitignore | 091217cf (672 B), 17e3d7c5 (227 B)...
也许您可以尝试使用以下命令来删除所有无法访问的对象。
git prune
或
git gc
我终于使用 that script 来清理存储库中已删除的过时文件。它结合了分支重写和垃圾收集器调用的几个步骤来清理当前存储库。
我设法在 4MB 的新存储库中压缩了 700MB 的重存储库。 像往常一样,在 运行 这种脚本之前复制你的存储库,它可能会导致一些数据丢失!