Mac下,只要在Finder访问过的文件夹,都会生成一个.DS_Store的文件,Mac用它来存储当前文件夹的一些Meta信息。对于Git来说,不经意间总是会干扰到其他正常的提交和本地仓库状态,是很烦恼,找了半天,终于有一个比较好的办法处理了
流程大致是这样的:
对于项目内已经提交了.DS_Store到仓库的情况
|
|
搜索一下项目内所有的.DS_Store
,全部rm
掉,然后再push
一把
对于今后的项目,做全局的配置
如果没有~/. gitignore_global
文件,echo
也会为你生成一个,这里的主要目的是覆盖所有可能的OS X
版本生成的.DS_Store
,逐一执行一次就可以了,之后cat
一下看是否正常写入了
|
|
然后设置一下全局的配置
|
|
大功告成~
另外,Github还提供了一个官方的全局示例,可以根据实际需求使用:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Compiled source # | |
################### | |
*.com | |
*.class | |
*.dll | |
*.exe | |
*.o | |
*.so | |
# Packages # | |
############ | |
# it's better to unpack these files and commit the raw source | |
# git has its own built in compression methods | |
*.7z | |
*.dmg | |
*.gz | |
*.iso | |
*.jar | |
*.rar | |
*.tar | |
*.zip | |
# Logs and databases # | |
###################### | |
*.log | |
*.sql | |
*.sqlite | |
# OS generated files # | |
###################### | |
.DS_Store | |
.DS_Store? | |
._* | |
.Spotlight-V100 | |
.Trashes | |
ehthumbs.db | |
Thumbs.db |
最后补充一下
.gitignore
的语法
gitignore规范
- 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配。
- 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上(!)取反。
glob模式要点
*
:任意个任意字符,[]
:匹配任何一个在方括号中的字符,?
:匹配一个任意字符,[0-9]
:匹配字符范围内所有字符