日拱一卒无有尽,功不唐捐终入海

git取消跟踪文件目录及使用gitignore忽略文件

开发工具 Sam 1401℃ 0评论

环境一:ubuntu+phpstorm+thinkphp5

.gitignore文件

把.gitignore也提交到Git

如果你确实想添加该文件,可以用-f强制添加到Git:

或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:

Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。

忽略某些文件时,需要编写.gitignore;
.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!


在git是用过程中,可能遇到以下情况:

1、被跟踪文件里面有不想跟踪的文件。

2、每次用git status查看状态时总是列出未被跟踪的文件。

解决方法:

1、当被跟踪的文件里面有不想跟踪的文件时,使用命令git rm删除文件。如:

git rm –cached readme1.txt    删除readme1.txt的跟踪,并保留在本地。

git rm –f readme1.txt    删除readme1.txt的跟踪,并且删除本地文件。

然后git commit即可。但是git status查看状态时还是会列出来。

2、每次用git status查看状态时总是列出未被跟踪的文件,可以通过.gitignore文件达到目的。

在git init的目录下建立.gitignore文件,使用如下语法进行填写文件即可。

/mtk/ 过滤整个文件夹
*.zip 过滤所有.zip文件
/mtk/do.c 过滤某个具体文件
很简单吧,被过滤掉的文件就不会出现在你的GitHub库中了,当然本地库中还有,只是push的时候不会上传。

需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中:

!*.zip
!/mtk/one.txt
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。

为什么要有两种规则呢?想象一个场景:我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理。那么我们就需要使用:

/mtk/
!/mtk/one.txt
假设我们只有过滤规则没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!

最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。


ThinkPHP5中git忽略文件

 

转载请注明:PHP笔记 » git取消跟踪文件目录及使用gitignore忽略文件

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)