Android开发中对.gitignore文件的配置

一、配置 .gitignore的原因

被加进“.gitignore”的表示不会被Git跟踪,在实际开发过程中,有很多因素导致有些文件不应该加入版本控制中,如:

不同的电脑,开发软件的版本不同,以及软件的一些配置不同,还有编译生成的文件等等~~并且在开发过程中会遇到很多冲突,因此就需要对“.gitignore"文件进行好好的配置。

二、 .gitignore语法

首先说明“.gitignore"文件的语法:(详情请查询官方文档

1. 用#来注释语句,在#后面的内容会被Git忽略

2. 可以用空行来间隔增加可读性与美观

3. 以斜杆(/) 结尾的字符,被当做文件夹处理,文件夹下的所有文件将被忽略

如 build/ 表示Git会忽略 build/ 目录下的所有文件(不过似乎不加也一样可以,但是必须保证这是一个目录,而不是某个文件)

4. 局部及全局的同名文件忽略问题

如 /TODO 表示Git仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO

如 doc/*.txt 表示Git会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

如 doc/**/*.txt 表示Git会忽略所有 doc目录下的 txt 格式的文件

5. ".gitignore"使用glob 语法(简化了的正则表达式)匹配:【

星号(*)匹配零个或多个任意字符

[abc]匹配任何一个列在方括号中的字符(要么匹配一个 a,要么匹配一个 b,要么匹配一个 c)——如  *.[oa]表明Git忽略所有以 .o 或 .a 结尾的文件

问号(?)只匹配一个任意字符;

如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字; [0-9a-zA-Z] 表示匹配所有 0 到 9 的数字和所有字母)

在某文件前加上感叹号(!)取反,表明该文件除外。如

# 忽略所有 .a 结尾的文件

*.a

# 但 lib.a 除外

!lib.a

6.根目录下的文件名称前可以加/,也可以不加

三、我的  .gitignore文件(android studio)

我一般会加上/.idea/encodings.xml文件

# Gradle directory
.gradle/
build/

# files for the dex VM
*.dex

#built application files
*.apk
*.ap_

# Java class files
*.class

# Local configuration file (sdk path, etc)
local.properties

.idea/workspace.xml
.idea/libraries
.idea/gradle.xml
.idea/misc.xml
.idea/encodings.xml

# OSX files
.DS_Store

captures/
# generated files(studio中应该不需要)
bin/
gen/

# Windows thumbnail db
Thumbs.db

解释:

local.properties 文件指向的绝对路径在文件系统以上的SDK , 所以肯定不应该被版本化。

添加.gradle 忽略 gradle wrapper 东西,不应纳入版本控制的

添加 .DS_Store  此文件夹是特定于Mac系统的,不应该进行版本控制

在IDEA 13 及早期版本中,dataSources.ids, datasources.xml can contain database passwords,所以要把它加入版本控制中, IDEA 14 解决了这个问题,所以不需要再加了.

有很多人都说要忽略 .iml 但是IntelliJ docs 表明.iml 必须要包含在版本控制中,所以,我就不添加 .iml了

四、网上流传的用于Android的 .gitignore文件

Share the project .ipr file and all the .iml module files, don‘t share the .iws file as it stores user specific settings

# built application files
*.apk
*.ap_
# files for the dex VM
*.dex
# Java class files
*.class
# built native files(如果使用了第三方库,就移除该项)
*.o
*.so
# generated files
bin/
gen/
# Ignore gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Eclipse Metadata
.metadata/

# Mac OS X clutter
*.DS_Store

# Windows clutter
Thumbs.db

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# Intellij IDEA (see https://intellij-support.jetbrains.com/entries/23393067)
.idea/workspace.xml
.idea/tasks.xml
#In IDEA 13 及早期版本中,dataSources.ids, datasources.xml 可以包含数据库密码.IDEA 14 解决了这个问题.所以可以不加
.idea/datasources.xml
.idea/dataSources.ids

网上似乎还有个专门的插件--

时间: 2024-11-06 12:46:00

Android开发中对.gitignore文件的配置的相关文章

android开发中,apk文件安装到\system\app 的解决办法 仅限root机

在 Android 中,如果要使用系统限制的权限(比如 android.permission.WRITE_SECURE_SETTINGS),我们需要把程序安装到 /system/app/ 下. 下面以 SecureSetting.apk 为例,演示这个操作.需要准备一台已经获得 Root 权限的手机. 1.通过 USB 连接手机和电脑. 2.使用 adb 控制手机. 源码打印?    1. $ adb push SecureSetting.apk /sdcard/  // 上传要安装的文件,为安

Android开发中出现cannot be resolved to a variable错误,也就是R文件不能生成。

最近开始学过习Android开发,配置完成开发环境后,在创建第一个Android项目就出现了cannot be resolved to a variable错误,也就是R文件不能生成的问题. 以下是从网上找到的解决方法 : Android开发过程中,碰到R cannot be resolved to a variable的报错信息,好像没有很确定的错误原因,一般来说,我总结出几个可能的解决方法,希望试过以后管用... 1. 检查Android 的SDK是否丢失需要重新下载,检查build pat

java/android开发中删除文件

在java或者android开发中经常遇到要删除一个文件夹及其子文件的需求,本文主要总结了自己开发中遇到并且使用过的两种删除文件和文件夹的方法. 1.如果仅仅是删除一个文件可以使用以下代码,传入文件路径即可 public static void deleteFile(String path) { File file = new File(path); file.delete(); } 2.如果需要删除一个非空文件夹,则需要遍历整个文件夹下子文件,进行递归删除 public static void

android开发中R文件丢失

R文件在android开发中,占据着中会在重要的地位,里面的内容有系统自动生成,不可随意修改,然而在开发过程中,总是不可知的丢失,这里总结一下修补方法 #.在Eclipse里可以 (1).在不能确认xml文件或图片文件没有错误的情况下,最好不要clear,因为这时只要一clear,那么R文件就会没了,而在众多的xml文件里面找出错误确实不是一件容易的事. (2).如果R文件已经丢失,可以 右键项目-->Android Tools--> fix project properties, (3).检

android开发中碰到的三个小问题

Android开发中注意到的几个问题 1.  关于actionbar 初始化配置actionbar,getactionbar经常为null,原因是因为在源码或者布局文件中设置了全屏显示的缘故,不设置全屏显示就不会有问题. 2.  关于textview Textview默认是没有焦点的,因此不可能有点击事件,也无法直接实现背景的selector.通过设置android:clickable = true;就可以了,这一点与Button有很大的不同 3.  关于sourcinsight中的php代码.

android权限--android开发中的权限及含义(上)

android权限--android开发中的权限及含义(上) android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户 android.permission.FLASHLIGHT 访问闪光灯,android开发网提示HTC Dream不包含闪光灯 android.pe

Android开发中Eclipse里的智能提示设置

今天开始学习一下Android开发,直接在Android Developers下载的一个开发工具包,然后再下了一个JDK,配置完环境变量等一系列的工作后环境就搭建好了,在新建好第一个Android项目 后,唉?写代码没有智能提示?对于用惯了VS的.NET开发者来说,简直不能接受啊,肯定哪里有设置对不对! 百度了一下,设置如下:1.java文件中智能提示打 开Eclipse 依次选择 Window > Preferences > Java > Editor - Content Assist

android开发中的5种存储数据方式

数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences存储数据 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstance State保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整

Android开发中单元测试的两种方式

Android开发中单元测试的两种方式 一位优秀的程序员也同样不能保证自己的程序没有bug,因此编写合适的测试程序是完全有必要的,这样也会降低程序在后期出现各种奇奇怪怪bug的可能,降低维护成本,未雨绸缪将bug扼杀在摇篮之中. 看到网上有很多依旧用写java单元测试的方式在写android程序的单元测试程序--junit,当然我一直都反感将不合时宜的东西强搬到新的技术应用以获取一席之地的这种做法,不断的应用新的方法提高效率,完善程序才是真理!废话不多说,直接说到今天的重点:Android开发中