查找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这些文件呢?

参考

https://git-scm.com/book/zh/v2/Git-%E5%86%85%E9%83%A8%E5%8E%9F%E7%90%86-%E7%BB%B4%E6%8A%A4%E4%B8%8E%E6%95%B0%E6%8D%AE%E6%81%A2%E5%A4%8D

https://git-scm.com/docs/git-rm

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfsjp.html