【git】gitignore
gitignore
git专门有个文件用来管理那些不被纳入版本库的文件,这个文件是 [.gitignore],所有不被包含的都能放进去,但这个是有前提的。
前提
前提是文件如果没被git客户端tracked,那么该文件是可以直接添加到 [.gitignore] 中的;
否则,如果文件先被track到git项目中,那么即使该文件路径被加到 [.gitignore] 中,该文件的修改也是会被git项目跟踪到的。
实践1
模拟已经tracked到项目,查看文件的状态。
$ cat .gitignore
.idea
.env
$ git check-ignore -v .idea
.gitignore::.idea .idea
$ git check-ignore -v .env
[这里显示的是空行]
同样都在gitignore文件中,为什么一个文件检查ignore状态是通过的,一个检查是失败的?
这里就有个区别:因为我们之前提交过[.env]文件,但是未提交过[.idea]。
这里要回顾下前提。
实践2
如果一个文件被tracked,则加入到 [.gitignore] 是失效的。
$ vim .env
[edit some line]
$ git status .env Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory) modified: .env
$ git check-ignore -v .env
[这里输出的是空行,表示验证ignore失败]
这里能够看到,一个被tracked到项目中的文件,它的修改是能够被跟踪到的。
实践3
我们要如何操作?才能将该文件包含到gitignore中,从而它的修改删除状态,不会被git所跟踪
$ git rm .env
rm '.env'
$ git status .env
On branch branch_v1
Your branch is up-to-date with 'origin/branch_v1'. Changes to be committed:
(use "git reset HEAD <file>..." to unstage) deleted: .env $ git commit -m 'Remove: .env'
[branch_v1 bebee11] Remove: .env
file changed, deletions(-)
delete mode .env
$ git push origin branch_v1:branch_v1
.......
$ git check-ignore -v .env
.gitignore::.env .env
最后可以看到,检查ignore状态是成功命中的。
回顾
如果一个文件已经包含在 [.gitignore] 文件中,但是它的修改仍然可以被跟踪到,那么这个文件是被tracked到项目中的,在gitignore包含它之前,它已经提交到项目中了。
解决办法:将该文件从git项目中删除掉即可。
具体操作:
1,将该文件备份到另一文件;
2,操作git命令,将该文件删除掉,然后commit & push到远程;
3,修改 [.gitignore] 文件,把该文件包含进去,然后git commit&push;
4,把1备份的文件重命名会原始文件,原始文件仍然在本地,但是不会被git所管理。
大致操作如下:
1, cp src_file src_backup
2, git rm [src_file]; git commit -m ''; git push origin;
3, vim .gitignore; git commit -m ''; git push origin;
4, cp src_backup src_file; rm src_backup;
更多扩展:
高级-Git官方:https://git-scm.com/docs/gitignore
【git】gitignore的更多相关文章
- 【git】删除某个文件的所有历史记录,批量删除远程分支
		删除git某个文件的所有历史记录 git的目的就是版本控制,记录每一个版本的变动.然而有的时候我们往往希望从版本库中彻底删除某个文件,不再显示在历史记录中.例如不小心上传了一堆错误的文件,或者不小心上 ... 
- 【Git】 GitLab简单使用
		本例介绍简单实用GitLab,安装请参照[Git] GitLab服务器社区版安装与配置 1.用户和组的管理 a.创建组,在首页点击Create a group b.创建用户,在首页点击Add peop ... 
- 【git】强制覆盖本地代码
		[git]强制覆盖本地代码(与git远程仓库保持一致) 2018年04月27日 23:53:57 不才b_d 阅读数:21145 版权声明:本文为博主不才b_d原创文章,未经允许不得转载. || ... 
- 【Git】远程分支
		[Git]远程分支 转载:https://www.cnblogs.com/yangchongxing/p/10239270.html 目录 ============================ 1 ... 
- 【Git】本地分支
		[Git]本地分支 转载:https://www.cnblogs.com/yangchongxing/p/10221382.html 目录 ============================== ... 
- 【Git】安装配置
		[Git]安装配置 转载:https://www.cnblogs.com/yangchongxing/p/10173231.html 1.在 Ubuntu 上安装 $ sudo apt-get ins ... 
- 【Git】学习开始
		[Git]学习开始 转载:https://www.cnblogs.com/yangchongxing/p/10172683.html 在线电子书籍:https://git-scm.com/book/z ... 
- 【Git】git使用 - 各种常用场景命令解决
		(多看git中的各种帮助-h/--help,可能有你想要的命令) 1.分支的创建和切换 创建 >>>> git branch branchName 切换分支 >>& ... 
- 【git】【Idea】git刷新获取远程分支列表,可以在idea上看到最新的远程分支列表
		[前提:本地项目是从GitLab或gitHub这些远程仓库上拉下来的 ,并且本地安装了git] ==================================================== ... 
随机推荐
- day07-多表查询
			本节重点: 多表连接查询 符合条件连接查询 子查询 准备工作:准备两张表,部门表(department).员工表(employee) create table department( id int, ... 
- window(win7)下安装ubuntu14.04lts (desktop)系统
			一.前期准备 1.大于2G的U盘一个(我的系统盘制作完成后大约占1个多G的容量) 2.已下载好的Ubuntu安装文件(选择在官网下载,有32和64位选择) 3.已安装好UltraISO软件的电脑(Ul ... 
- linux集群时间同步搭建
			http://xstarcd.github.io/wiki/sysadmin/ntpd.html http://www.voidcn.com/blog/xuxudede1989/article/p-4 ... 
- Linux主题:获取帮助
			Linux有多种方式获取帮助,这些帮助通过不同的命令,获得不同详细程度和文字量的帮助. help help方式有两种用法,一种是help command,另一种是command --help.前一种是 ... 
- 在page cache中的页,如果当时没有进程read或者write,引用计数到底该为多少
			在一次偶然的机会,在研究如何降低pagecache占用的过程中,走查了 invalidate_mapping_pages的代码: 通过调用 __pagevec_lookup 在radix树中收集一部分 ... 
- Redis进阶实践之三如何在Windows系统上安装安装Redis(转载)
			Redis进阶实践之三如何在Windows系统上安装安装Redis 一.Redis的简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括 ... 
- Linux磁盘空间不足处理方法
			维护Linux服务器正常使用需要经常删除Linux系统运行产生的系统日志和业务环境产生的debug日志文件.安装包等.本文主要描述如何通过脚本实现清理业务环境产生的 debug日志文件和上传或备份的打 ... 
- jQuery+php实现二级联动
			public function liandong(){ $arr = Db::table("city")->where("pid=0")->sele ... 
- 关于T-SQL中exists或者not exists子查询的“伪优化”的做法
			问题起源 在使用t-sql中的exists(或者not exists)子查询的时候,不知道什么时候开始,发现一小部分人存在一种“伪优化”的一些做法,并且向不明真相的群众传递这一种写法“优越性”,实在看 ... 
- 18.3 redis 的安装
			因为之前我们server不存东西 我们 发现 后打开的网页 是接手不到之前的变化,不能更新到最新的变化的. 我们需要做到server给client发最新的代码已达到同步 我们有三种做法同步到最新的代码 ... 
