查找git ignore的追踪

前言

版本控制说简单也简单,说复杂也困难的多。作为开发者,最基础的版本管理和团队协作的功能必须掌握。而其他一些相关的信息也可以了解下。比如,这次就有同事遇到了问题。

遇到的问题

在windows下,往repo里添加了一个xxx.exe文件,然后检查sourceTree却并没找到暂存的更改。

解决

我由于长时间不用source tree, 也不用eclipse,对这两种工具里的git操作也不太熟悉,幸好git的操作都是基于命令行的。

我先检查了.gitignore文件,发现里面并没有忽略所添加的xxx.exe。然后就很奇怪,难道会有global的ignore?果然,真有!

可以通过以下命令确定我们的被ignore的规则:

D:\workspace\learn\git-test>git check-ignore -v src/git-bash.exe
"C:\\Users\\Ryan\\Documents\\gitignore_global.txt":6:*.exe      src/git-bash.exe

从结果可以看出,果然存在一个global的配置。

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.dll
*.lib
*.sbr

删除第6行的rule。于是发现可以继续追踪文件了。

gitignore的意义

在开发过程中发现很多同事并不理解gitignore的意义所在,经常看到有同事新建了一个repo,然后并没有.gitignore,然后就会发现推送一堆ide或生成的配置文件到remote。或者,并没有推送过去,但当我clone下来,然后本地修改提交后发现很多不需要的文件被追踪。后来发现,原来大家习惯了source tree,然后都是提交的时候选择想要的文件,然后推送。这真是个令人不开心的发现。个人认为,这种做法对开发是很不友好的,虽然source tree的图形化界面简化了git使用。但如果忘了提交某个文件怎么办?如果不小心多添加了文件怎么办?如果一次添加了大量的文件如何排查?所以,除了要添加.gitignore之外,系统的学习下git的使用也是很有必要的。

比如,曾经遇到过这样的问题,由于repo最初没有gitignore,我后面加上ignore之后,发现被ignore的文件依旧会被追踪。那么,如何彻底的清除和ignore这些文件呢?

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

如何优化服务器的性能

一、通常服务器的性能会卡在三个地方: cpu 网络IO 磁盘IO 二、在优化性能的时候,首先要判断性能的瓶颈在上述的哪个地方。然后对症下药,按照下面的方法来优化...

5356
来自专栏LanceToBigData

struts2(一)之初识struts2

前言   我们都知道struts2是一个框架,那什么是框架呢?很多人其实不太明白,其实框架就是一个半成品,别人将一些功能已经写好了,我们只需要拿来用即可,像我们...

2319
来自专栏Golang语言社区

如何优化服务器的性能

一、通常服务器的性能会卡在三个地方: cpu 网络IO 磁盘IO 二、在优化性能的时候,首先要判断性能的瓶颈在上述的哪个地方。然后对症下药,按照下面的方法来优化...

4359
来自专栏北京马哥教育

Python定时利用QQ邮件发送天气预报

好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下。 首先利用request库去请求数据,天气预报使用的是和风天气的API(...

48910
来自专栏云飞学编程

python爬虫零基础入门——反爬的简单说明

之前在《如何开始写你的第一个python脚本——简单爬虫入门!》中给大家分享了一下写一个爬虫脚本的基本步骤,今天继续分享给大家在初期遇到的一个很烦人的问题——反...

993
来自专栏散尽浮华

SVN和Git对比梳理

在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢? SVN(Subversion)是集中式...

3086
来自专栏chenssy

【死磕Sharding-jdbc】---orchestration简介使用

sharding-jdbc2.x核心功能之一就是orchestration,即编排治理,什么意思呢?官方文档介绍--2.0.0.M1版本开始,sharding-...

2654
来自专栏前端杂货铺

node模块加载层级优化

模块加载痛点 大家也或多或少的了解node模块的加载机制,最为粗浅的表述就是依次从当前目录向上级查询node_modules目录,若发现依赖则加载。但是随着应用...

3758
来自专栏编程

Linux探秘之用户态与内核态

Unix/Linux的体系架构 ? 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——...

5379
来自专栏aCloudDeveloper

Linux探秘之用户态与内核态

一、 Unix/Linux的体系架构 ?   如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一...

2398

扫码关注云+社区

领取腾讯云代金券