gpt4 book ai didi

git filter-branch 删除文件夹失败

转载 作者:太空狗 更新时间:2023-10-29 12:54:21 31 4
gpt4 key购买 nike

我想从我的 git repo 上的提交中删除一个文件夹,所以我使用这个命令:

git filter-branch --tree-filter 'rm -rf folder' HEAD
git push origin master --force

但是我的 git 仓库没有任何变化,那些包含我想删除的文件夹的提交仍然在 git 仓库上。

所以我又试了一次,但是有显示:

.git-rewrite already exists please remove it

我不知道我还能做些什么来从所有包含 git repo 上永久文件夹的提交中删除它。

最佳答案

为了从 git 存储库中完全删除文件或目录,您必须确保它不再被引用。

在 git 中,文件(或 blob 对象)由树对象引用,而树对象又被另一个树对象或提交对象引用。提交对象由分支、标签、引用日志等引用。

前段时间我不得不从一个项目中完全删除一个文件夹并写了一篇关于它的博客。所以我不想在这里重复自己。看看Remove directories and files permanently from git页面。

为此,我还编写了一个使用 jgit 库的 swing 应用程序。试试GitDirStat .之前复制您当前的存储库始终是一个不错的选择。

.git-rewrite already exists please remove it

按照消息中的说明进行操作。删除 .git-rewrite

PS:您不必使用 --tree-filter 索引过滤器会更快;)然后您必须使用 git rm -rf --cached.

关于git filter-branch 删除文件夹失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30316723/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com