昨天我花了几个小时调试git repo的一个问题,但git reset HEAD --hard没有修复这个问题,因为导致问题的文件被.gitignore忽略了。有没有办法“刷新”或“清理”git repo中所有被忽略的文件,这样就只有git跟踪的文件才存在?我最终通过删除repo并再次从github克隆它来修复我的问题,但在未来,我希望立即删除所有潜在的问题文件(那些被忽略的文件)。
git reset HEAD --hard
.gitignore
8gsdolmq1#
git clean -dfX
git-clean -从工作树中删除未跟踪的文件-d用于删除目录-f强制删除-n实际上不删除任何内容,只是显示要执行的操作。-X只移除被Git忽略的文件。这对于从头开始重建所有文件可能很有用,但保留手动创建的文件。如果已将忽略的文件添加到索引/分段中,则必须在使用上述clean命令之前从跟踪索引中删除这些文件。git rm -rf --cached .然后添加除.gitignore文件中包含的文件之外的文件git add .
-d
-f
-n
-X
clean
git rm -rf --cached .
git add .
w8f9ii692#
有一个单一的命令解决方案:
git ls-files --ignored --exclude-standard | sed 's/.*/"&"/' | xargs git rm -r --cached
它的作用是:
2条答案
按热度按时间8gsdolmq1#
git-clean -从工作树中删除未跟踪的文件
-d
用于删除目录-f
强制删除-n
实际上不删除任何内容,只是显示要执行的操作。-X
只移除被Git忽略的文件。这对于从头开始重建所有文件可能很有用,但保留手动创建的文件。如果已将忽略的文件添加到索引/分段中,则必须在使用上述
clean
命令之前从跟踪索引中删除这些文件。git rm -rf --cached .
然后添加除.gitignore文件中包含的文件之外的文件
git add .
w8f9ii692#
有一个单一的命令解决方案:
它的作用是: