使用新gitignore文件的resync git repo

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (45)

在更新gitignore文件之后,是否有可能“刷新”git存储库?

我只是在我的gitignore中添加了更多的忽略,并希望删除与新文件匹配的回购中已经存在的内容。

提问于
用户回答回答于

“.gitignore文件没有忽略“有点极端,但应该有效:

# 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"
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>"
用户回答回答于

我可能误解了,但试图删除新忽略的文件,还是要忽略对这些文件的新修改?在这种情况下,事情是可行的。

如果要删除以前已被忽略的文件,请使用

git rm –cached `git ls-files -i –exclude-standard`
git commit -m 'clean up'

扫码关注云+社区