gpt4 book ai didi

git - 从 git 历史记录中删除的文件仍然存在?

转载 作者:行者123 更新时间:2023-12-02 03:23:30 27 4
gpt4 key购买 nike

在一个旧的提交中添加了一个大文件。经过几次提交后,它已被删除,但它保留在历史记录中,因此我尝试通过以下命令从历史记录中删除此文件:

git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch src/main/resources/embed/linux/mongodb-linux-x86_64-3.2.0。 tgz"--pru-tag-name-filter cat -- --all

该命令的结果如下:

Rewrite 9e96a248322ba6e85efde1e41498db0d41c1ee79 (3026/5151) (13917 seconds passed, remaining 9773 predicted)    rm 'src/main/resources/embed/lib-linux-x86_64-3.2.0.tgz'
Rewrite 070cbe84ad8e1bc8f1ccec5294b600218d714e30 (4123/5151) (18963 seconds passed, remaining 4728 predicted) rm 'src/main/resources/embed/lib-linux-x86_64-3.2.0.tgz'
Rewrite 1f5604b332d6d48169fa398b60fc5ac42124d63d (5151/5151) (24005 seconds passed, remaining 0 predicted)
Ref 'refs/heads/master' was rewritten
Ref 'refs/remotes/origin/master' was rewritten
....

据我从输出中了解到,该文件已从提交中删除9e96a248322ba6e85efde1e41498db0d41c1ee79,所以我检查一下:

git checkout 9e96a248322ba6e85efde1e41498db0d41c1ee79
ls src/main/resources/embed/linux/

结果是mongodb-linux-x86_64-3.2.0.tgz。所以该文件仍然存在于历史记录中。我做错了什么?如何才能合规地删除它?

最佳答案

as I understand from the output the file was removed from commit 9e96a248322ba6e85efde1e41498db0d41c1ee79

git filter-branch删除文件并创建新提交。新提交具有不同的哈希值,因为其内容不同。哈希值 9e96a248322ba6e85efde1e41498db0d41c1ee79 的原始提交仍然存在,直到您运行 git gc 。请注意,如果您运行 git log | grep 9e96a ,该哈希将不会出现,因为相应的提交不再在您的历史记录中。

要更详细地了解这一点,我建议您阅读有关如何创建提交的信息。 This blog article解释得很好。和this chapter in Pro Git详细介绍 git 的内部管道以及如何创建提交。

关于git - 从 git 历史记录中删除的文件仍然存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54096687/

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