gpt4 book ai didi

git - 如何删除 .gitignore 中列出但仍在存储库中的文件?

转载 作者:IT王子 更新时间:2023-10-29 01:13:58 25 4
gpt4 key购买 nike

我的存储库中有一些文件应该被忽略,我将它们添加到 .gitignore,但是,当然,它们并没有从我的存储库中删除。

所以我的问题是,是否有使用 filter-branch 的神奇命令或脚本可以重写我的历史记录并轻松删除所有这些文件?或者只是一个将创建将删除它们的提交的命令?

最佳答案

您可以手动将它们从存储库中删除:

git rm --cached file1 file2 dir/file3

或者,如果您有很多文件:

git rm --cached `git ls-files -i -c --exclude-from=.gitignore`

但这在 Windows 上的 Git Bash 中似乎不起作用。它会产生一条错误消息。以下效果更好:

git ls-files -i -c --exclude-from=.gitignore | xargs git rm --cached  

在 Windows 上的 PowerShell 中,这个效果更好(处理路径和文件名中的空格):

git ls-files -i -c --exclude-from=.gitignore | %{git rm --cached $_}

关于在没有这些文件的情况下重写整个历史,我非常怀疑是否有一种自动的方法来做到这一点。
我们都知道改写历史是不好的,不是吗? :)

关于git - 如何删除 .gitignore 中列出但仍在存储库中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13541615/

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