在我们引入 .gitignore 文件之前,我们的 git repo 中已经检查了一大堆文件。我目前正在尝试清理它:
git rm --cached `git ls-files -i --exclude-from=.gitignore`
问题是许多文件路径中都有空格。
例如:
......
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg12.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg13.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg14.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg15.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg16.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg17.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg18.png.meta
.......
我需要删除整个 lotta 文件中的 WHOLE LOTTA SPACES。
我正在寻找一种优雅的方式:
A: 用“\”转义空格,例如
Assets/Aoi\ Character Pack/Viewer/Resources/Aoi/Viewer\ BackGrounds/bg18.png.meta
-或者-
B:
git ls-files
把我的文件清单都抽出来,整齐地夹在引号之间。'Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg18.png.meta'
-编辑-
到目前为止我已经尝试过
git ls-files -i --exclude-from=.gitignore | sed 's/\ /\\\ /g'
虽然这很高兴地输出看起来像我期望的文件路径,但空格已转义.....当我尝试执行时
git rm --cached `git ls-files -i --exclude-from=.gitignore | sed 's/\ /\\\ /g'`
我得到 - 错误:未知开关 `\'
我预计管道会发生一些奇怪的事情。