git status时有Untracked files(racked files(未跟踪)的文件,原因分析以及解决方案,git clean详解
·
原因分析
我们要真正弄明白问题的原因,我们就要先知道文件的几个状态。
git在未commit之前有三种状态:
- Untracked files 未跟踪
- Changes not staged for commit 未提交的更改
- Changes to be committed 提交的更改
什么文件会是未跟踪的呢?
那些新创建的或者从未add过的文件就是未跟踪的。
此时有几种情况:
1. 我们创建了准备提交上去的,这种好办只要add了就可以了。
2. 必须放在git工具目录中,但又不能提交的,比如保存了数据库密码的配置文件等的东西。
3. 我们不准备提交又没用的。
问题解决
第一种情况:
直接add,
git add textUntrackedFiles.txt
第二种情况:
在git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,git就会自动忽略这些文件。
创建了文件添加了文件:
再查看:
刚刚那个文件被忽略了。
第三种情况:
我们不需要就删除就可以了:clean
git clean 是从你的工作目录种删除所有没有tracked(未跟踪)过的文件。
要知道这个命令很危险,删除了就找不到了。但是如果已经git add . 就不会被删除。
参数说明:
n:显示将要被删除的文件以及目录
d:删除未被添加到git路径中的文件以及目录(将.gitignore文件标记的文件全部删除)。
f:强制执行(只会删除文件)
x:删除没有被track的文件
使用:
//是一个演习,告诉你那些文件会被删除,不会真正删除
git clean -n
//删除当前目录下所有没有track过的文件,.gitignore文件里指定的不会删除。
git clean -f
//删除指定路径下的没有被track过的文件
git clean -f <path>
//强制删除所有没有被track过的文件和文件夹,
git clean -df
//强制删除所有没有被track过的文件(.gitignore文件里指定的也不能避免)
git clean -fx
上面只是说了一些常用的,大家可以根据参数的意思自行组合。已完成自己的目的。
更多推荐
已为社区贡献5条内容
所有评论(0)