Mac下,只要在Finder访问过的文件夹,都会生成一个.DS_Store的文件,Mac用它来存储当前文件夹的一些Meta信息。对于Git来说,不经意间总是会干扰到其他正常的提交和本地仓库状态,是很烦恼,找了半天,终于有一个比较好的办法处理了
流程大致是这样的:
对于项目内已经提交了.DS_Store到仓库的情况
|
|
搜索一下项目内所有的.DS_Store
,全部rm
掉,然后再push
一把
对于今后的项目,做全局的配置
如果没有~/. gitignore_global
文件,echo
也会为你生成一个,这里的主要目的是覆盖所有可能的OS X
版本生成的.DS_Store
,逐一执行一次就可以了,之后cat
一下看是否正常写入了
|
|
然后设置一下全局的配置
|
|
大功告成~
另外,Github还提供了一个官方的全局示例,可以根据实际需求使用:
最后补充一下
.gitignore
的语法
gitignore规范
- 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配。
- 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上(!)取反。
glob模式要点
*
:任意个任意字符,[]
:匹配任何一个在方括号中的字符,?
:匹配一个任意字符,[0-9]
:匹配字符范围内所有字符