#### 简介
> 在日常开发工作中,有些文件或目录需要放到我们本地 git 工作目录中,并且这些文件又不能提交到远程 git 仓库中。例如一些敏感文件。这种情况下每次提交都需要注意,即耽搁时间,git status 的时候看着也不爽。git 考虑到这点,所以有了 .gitignore 文件。只需要在 git 根目录下添加一个叫 .gitirnore 的文件,并且将想要忽略的文件或者规则添加到该文件中,在提交 git 远程仓库的时候,git 就会自动忽略该文件中指定的文件。
<!-- more -->
-------
#### 临时添加 .gititnore 规则不生效
在开发前如果在一开始我们添加的规则不够完整,在开发过程中临时想要忽略某个文件,这种情况下添加很多时候并不会生效,在提交的时候还是会提交到想要临时忽略的这个文件。原因是 .gitignore 只能忽略那些原来没有被追踪的文件,如果想要临时忽略的文件在之前已经被加入了版本管理中了,这时候修改 .gitignore 是无效的。解决方法只能先把本地缓存删除,将状态改成 Untracked的状态,然后再提交。执行如下命令:
```shell
git rm -r --cached .
git add .
git commit -m 'description'
```
这样显得也比较麻烦,最好在一开始就将一个比较全的规则添加到 .gitignore 文件中。
------
#### git 忽略规则
[https://github.com/github/gitignore](https://github.com/github/gitignore)上有各种忽略的配置文件。其中有一些是在日常开发中常用的文件,将当中的配置文件中的规则组合起来就可以形成常用的 .gitignore 文件了。
```shell
# 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
# OS generated files #
######################
.DS_Store*
ehthumbs.db
Icon?
Thumbs.db
# Editor Files #
################
*~
*.swp
# Gradle Files #
################
.gradle
.m2
# Build output directies
/target
*/target
/build
*/build
/bin
*/bin
classes
#
# # IntelliJ specific files/directories
# IntelliJ specific files/directories
out
.idea
*.ipr
*.iws
*.iml
atlassian-ide-plugin.xml
# Eclipse specific files/directories
.classpath
.project
.settings
.metadata
# NetBeans specific files/directories
.nbattrs
```
欢迎扫一扫关注 程序猿pdh 公众号!
![欢迎关注公众号 程序猿pdh](https://static.oschina.net/uploads/space/2017/1223/172355_DfMz_588116.jpg "欢迎关注公众号 程序猿pdh")
> 在日常开发工作中,有些文件或目录需要放到我们本地 git 工作目录中,并且这些文件又不能提交到远程 git 仓库中。例如一些敏感文件。这种情况下每次提交都需要注意,即耽搁时间,git status 的时候看着也不爽。git 考虑到这点,所以有了 .gitignore 文件。只需要在 git 根目录下添加一个叫 .gitirnore 的文件,并且将想要忽略的文件或者规则添加到该文件中,在提交 git 远程仓库的时候,git 就会自动忽略该文件中指定的文件。
<!-- more -->
-------
#### 临时添加 .gititnore 规则不生效
在开发前如果在一开始我们添加的规则不够完整,在开发过程中临时想要忽略某个文件,这种情况下添加很多时候并不会生效,在提交的时候还是会提交到想要临时忽略的这个文件。原因是 .gitignore 只能忽略那些原来没有被追踪的文件,如果想要临时忽略的文件在之前已经被加入了版本管理中了,这时候修改 .gitignore 是无效的。解决方法只能先把本地缓存删除,将状态改成 Untracked的状态,然后再提交。执行如下命令:
```shell
git rm -r --cached .
git add .
git commit -m 'description'
```
这样显得也比较麻烦,最好在一开始就将一个比较全的规则添加到 .gitignore 文件中。
------
#### git 忽略规则
[https://github.com/github/gitignore](https://github.com/github/gitignore)上有各种忽略的配置文件。其中有一些是在日常开发中常用的文件,将当中的配置文件中的规则组合起来就可以形成常用的 .gitignore 文件了。
```shell
# 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
# OS generated files #
######################
.DS_Store*
ehthumbs.db
Icon?
Thumbs.db
# Editor Files #
################
*~
*.swp
# Gradle Files #
################
.gradle
.m2
# Build output directies
/target
*/target
/build
*/build
/bin
*/bin
classes
#
# # IntelliJ specific files/directories
# IntelliJ specific files/directories
out
.idea
*.ipr
*.iws
*.iml
atlassian-ide-plugin.xml
# Eclipse specific files/directories
.classpath
.project
.settings
.metadata
# NetBeans specific files/directories
.nbattrs
```
欢迎扫一扫关注 程序猿pdh 公众号!
![欢迎关注公众号 程序猿pdh](https://static.oschina.net/uploads/space/2017/1223/172355_DfMz_588116.jpg "欢迎关注公众号 程序猿pdh")