您的位置:首页 > 其它

.gitignore文件配置

2016-11-25 17:16 204 查看
转自:http://cwind.iteye.com/blog/1666646  

有很多文件不必使用git管理。例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等。使用git status时,会在Untracked files里面看到这些文件列表,在一次需要添加的文件比较多时(使用git add . / git add -u),会把这些所有的未跟踪文件添加进索引。  

============一些牢骚============  
     于是自然想要告诉git把这些文件忽略,我们当然会想到去Google,输入本文标题这个关键字(一部分人会直接去看document),然后当然会有很多解决方案,多数告诉我们在.gitignore文件中添加待忽略的文件目录列表;照做,问题很有可能依然存在。  
     再Google,这次可能找到了help.github.com或stackoverflow上,看到一些原文的讨论;其中讲到在向.gitignore添加忽略文件之前一定要保证那些文件未被git跟踪,即先使用命令git rm --cached filename将它们从索引中删除。终于看到靠谱的解决方案不禁暗喜,照做--敲一下git status试试,问题很有可能仍然存在。  
     太多中文“技术资料”是复制照搬过来的,转载的人自己并没有试过;稍好一点的在英文社区看到了相关讨论,随手翻译了一下发过来,可能存在理解上的问题或者忽略了一些细节,导致依然没办法解决问题。  
     所以搜索引擎给出的中文的结果,有很多对解决问题丝毫无用的。Git忽略文件是很普遍也应该是很简单的一个问题,但多数帖子根本连这个问题都没搞明白,于是引发了这一系列的牢骚。  
     遇到问题要多思考,想想问题的本质,解决方法的原理;最重要的是要切实地去动手做。  
============牢骚结束============  

解决方案:  
1. 本地仓库忽略  
本地仓库的文件忽略规则可以在.git/info/exclude文件中添加。这些忽略的文件不会提交到共享库中,因而不会被协作者所共享。  

2. 当前工作目录添加文件忽略  
对于每一级工作目录,创建一个.gitignore文件,向该文件中添加要忽略的文件或目录。但在创建并编辑这个文件之前,一定要保证要忽略的文件没有添加到git索引中。使用命令git rm --cached filename将要忽略的文件从索引中删除。  
--摘抄.gitignore的格式规范  
• 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。  
• 可以使用标准的 glob 模式匹配。  
• 匹配模式最后跟反斜杠(/)说明要忽略的是目录。  
• 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。  
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]表示匹配所有 0 到 9 的数字)。  
2.1 工作目录的每一层下级目录都可以有一个.gitignore文件,以说明当前目录下需要被git忽略的文件或目录  
2.2 .gitignore文件可以被提交到共享库中被协作者共享  

3. 全局的.gitignore  
可以通过创建~/.gitignore_global并添加到git全局配置以减少每层目录的规则重复定义。使用命令git config --global core.excludesfile ~/.gitignore_global即可  
.gitignore_global文件范例  

Html代码      收藏代码 
<span style="font-size: small;"># 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    
Icon?    
ehthumbs.db    
Thumbs.db    
</span>    

References:  
1. Ignoring files, https://help.github.com/articles/ignoring-files   2. 初次使用git-忽略某些文件, http://www.phperblog.net/?p=173   3. git ignore file, Git增加忽略文件, http://www.cnblogs.com/wucg/archive/2011/08/16/2141647.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: