更新gitignore文件后是否可以"刷新"git存储库?
我刚刚向我的gitignore添加了更多的ignorations(?),并希望删除与新文件匹配的repo中的内容.
Von*_*onC 346
" .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"
Run Code Online (Sandbox Code Playgroud)
(确保首先提交您想要保留的更改,以避免任何事件,如下面的jball037 评论.
该--cached选项将保持您的文件不受影响.)
您还可以在博客文章" 使Git忽略已跟踪的文件 "中使用其他更细粒度的解决方案:
git rm --cached `git ls-files -i --exclude-standard`
Run Code Online (Sandbox Code Playgroud)
如果您收到错误消息
fatal: path spec '...' did not match any files,可能是路径中有空格的文件.您可以使用以下选项删除所有其他文件
--ignore-unmatch:
git rm --cached --ignore-unmatch `git ls-files -i --exclude-standard`
Run Code Online (Sandbox Code Playgroud)
但是不匹配的文件将保留在您的存储库中,并且必须通过用双引号括起它们的路径来显式删除它们:
git rm --cached "<path.to.remaining.file>"
Run Code Online (Sandbox Code Playgroud)
我可能会误解,但您是否正在尝试删除新忽略的文件,或者您是否要忽略对这些文件的新修改?在这种情况下,事情正在发挥作用.
如果要删除先前提交的忽略文件,请使用
git rm –cached `git ls-files -i –exclude-standard`
git commit -m 'clean up'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98928 次 |
| 最近记录: |