小编典典

使用新的 .gitignore 文件重新同步 git repo

all

更新 gitignore 文件后是否可以“刷新”一个 git 存储库?

我刚刚在我的 gitignore 中添加了更多忽略(?),并希望删除与新文件匹配的 repo 中已经存在的内容。


阅读 98

收藏
2022-06-02

共1个答案

小编典典

.gitignore file notignoring ”中提到的解决方案有点极端,但应该可以:

# rm all files
git rm -r --cached .
# add all files as per new .gitignore
git add .
# now, commit for new .gitignore to apply
git commit -m ".gitignore is now working"

--cached选项将保持您的文件在您的磁盘上保持不变。)

您在博文“让 Git 忽略已跟踪的文件”中还有其他更细粒度的解决方案:

git rm --cached `git ls-files -i --exclude-standard`

编辑中建议:

路径中有空格的文件

如果您收到类似 的错误消息fatal: path spec '...' did not match any files,则可能存在路径中带有空格的文件。

您可以使用选项删除所有其他文件--ignore-unmatch

git rm --cached --ignore-unmatch `git ls-files -i --exclude-standard`

但是不匹配的文件将保留在您的存储库中,并且必须通过用双引号将其路径括起来来明确删除:

git rm --cached "<path.to.remaining.file>"
2022-06-02