gpt4 book ai didi

git - 从 Git 仓库和远程 GitHub 上完全删除文件

转载 作者:IT王子 更新时间:2023-10-29 00:33:01 24 4
gpt4 key购买 nike

我不小心添加了一个图像文件夹并提交了。然后,我又做了一个 promise 。然后我使用 git rm -f ./images 删除了这些文件并再次提交。

现在,我在该分支(master)中做了更多的提交。在我的 HEAD 中,我没有那个 ./static/images 文件夹。

因此,我的存储库大小增加了很多。我怎样才能完全删除那些 Blob ?我也想从我的远程 GitHub 存储库中删除它。

最佳答案

这就是您要查找的内容:ignoring doesn't remove a file .我建议您阅读该页面,但这是要使用的特定命令:

git filter-branch --index-filter \
'git rm -r --cached --ignore-unmatch <file/dir>' HEAD

此外,要从 git 创建的缓存中删除所有已删除的文件,请使用:

rm -rf .git/refs/original/ && \
git reflog expire --all && \
git gc --aggressive --prune

您可以在此处找到有关最后一个命令的更多信息,以及一个脚本,该脚本可以在一个单一的操作中完成您想要的一切:git: forever remove files or folders from history .

另一个有很多解释的链接:Remove sensitive data .

[编辑] 另外,请参阅这个 StackOverflow 问题:Remove sensitive files and their commits from Git history .

(从上面链接的问题中 natacado 的回答复制的命令。)如果您已经从工作副本中删除了文件,则以下操作应该有效。找出添加不需要的文件的提交的哈希值。然后做:

git filter-branch --index-filter \
'git update-index --remove filename' <introduction-revision-sha1>..HEAD
git push --force --verbose --dry-run
git push --force

关于git - 从 Git 仓库和远程 GitHub 上完全删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5563564/

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