Android Studio配置Git还是比较简单的,麻烦的是可能中间出现各种问题。如果你想了解或感兴趣,请往下看。

首先你得下载Git客户端,网址:http://git-scm.com/download/

根据需要下载相应的版本,并安装。然后在Android Studio中指定git.exe,点击“Test”,成功则会弹出以下提示。

由于我用的是Android Studio 2.0 Preview,根本不存在“Enable Version Control Integration”提示,害我找了半天 T~T。其实有个类似的操作。

就是这个“Create Git Repository”,不然你会一直得到“...such that source detected in git but Unregistered Vcs root detected”提示。以下图示中unregistered roots上面的两个工程就完成了配置。

完成了这一步,往下就是为git添加remote了。我使用开源中国在线代码托管,先得到一个地址:https://git.oschina.net/***.git.

打开git base,并切换到项目的根目录,输入以下命令

git remote add origin https://git.oschina.net/***.git

顺利的话这一步就完成了。

然后在Android Studio中进行git add操作。

接着就是commit directory,最后push代码到远程仓库。

至此,一次提交结束。

默认情况下,Android Studio的项目会有这几个文件夹:build, libs, src. 但每次提交代码到git,都会提示build文件夹中的众多需要提交的文件,其实我们根本不关心build文件夹中的文件改动情况。怎么办呢?利用.gitignore把它过滤掉。

在工程根目录建立.gitignore文件,然后添加

build

就这么简单!如果你想过滤其它文件,添加相应的规则就可以了。

保存.gitignore文件后,还需要运行一下以下几个命令,以便把.gitignore文件提交到git上。

git rm -r --cached .
git add .
git commit -m "添加.gitignore文件"
git push origin master

“git rm -r -- cached 某个目录”,这个命令有点狠,会把目标目录清空,--cached .(注意:此处表示所有的文件,有一个点);"git add .",再把所有的文件重新加入缓存(stages new and modified, without deleted)。如果你当前其它文件已经是最新且已经push到远程仓库,完全可以用add .gitignore了事。

此外,还可以用以下命令代替git rm -r --cached .

git add -A

表示stages All。新手可能不太明白。好,我从git中的三种文件状态及其转换说起。

---------------------------------------------------------------------------------------------

华丽的分隔线

---------------------------------------------------------------------------------------------

1、首先,我在git对应的工程目录下创建一个test.txt,并输入以下字符串并保存。

Hello

2、打开git bash,输入命令git status,查看文件状态

你会看到,红色的test.txt处于待提交状态,这个文件被标记为Untracked files,并建议你使用git add <file>...命令将文件包含到待提交清单中。

3、按照提示,使用命令git add test.txt,把这个文件加入到git的快照中,再次git status

此时的test.txt状态变成了Changes to be committed,等待被提交。然后同时它还提示你,利用git reset HEAD <file>...可以将文件状态还原成为暂存状态,也即回到Untracked files状态。

4、打开test.txt,向其中加入些内容,保存。

Hello
world

其实就多了world这个字符串。再次用git status查看文件状态。

除了之前的“Changes to be committed”状态,还多了“Changes not staged for commit”状态,表明文件已经被修改,但修改还没有放入暂存区域,也就是没生成快照。如果此时进行commit操作,只会提交"Hello",忽略“world”。

根据提示,如果想把最新的修改“Hello world”提交到仓库,需要再次使用命令git add test.txt;如果想撤销修改,即只想提交“Hello”,可以使用git checkout -- test.txt,再次git status,则可以看到状态又改变了。

总结:所以,在文件未进行commit操作之前,存在三种状态:Untracked files, Changes not staged for commit, Changes to be committed. 每种状态可以随意转换。

--------------------------------------------------------------------------------------------------------

题外话

--------------------------------------------------------------------------------------------------------

在git的后续版本中,添加了git stage作为git add的一个同义词,这样在语义上更符合上面的Changes not staged for commit。为什么要增加stage呢?

1、分批提交,降低commit的粒度。

2、文件快照,便于回退。

如果一次提交过多文件,对后续的回滚或跟进无疑非常不利,对问题的定位也不便,体验过估计清楚的。比如你做了两个功能A和B,对应的文件修改分别是a1.java, a2.java; b1.java, b2.java,提交时就可以这样:

git stage a1.java a2.java
git commit -m "功能A"
git stage b1.java b2.java
git commit -m "功能B"

同时,每次修改后stage,任何时刻,都可以回到上一次staged的状态:

git checkout -- test.txt

如果想从stage中删除,则使用reset

git reset test.txt

这个命令就是git stage test.txt的反操作。

参考:知乎-为什么要先git add才能git commit?

Android Studio配置Git及Git文件状态说明的更多相关文章

  1. Android Studio 配置虚拟设备的镜像文件的存放路径

    操作系统:Windows 10 x64 IDE:Android Studio 3.3 Android Studio创建的虚拟设备的默认存放路径是位于C盘,这导致C盘的可用容量变小. 所以,我决定要将虚 ...

  2. Android studio配置Git

    Android studio配置Git 1.下载window 版git并安装:下载地址 2.Android Studio设置git插件:File->Setting->Version Con ...

  3. Android Studio配置使用git

    一.准备 如果没有安装git,那么先要到到Git官网下载git,然后按照提示一步一步安装即可,这个没有什么难度,不过要记得安装的目录. 二.Android Studio配置git File->S ...

  4. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

  5. Git中的文件状态和使用

    (暂存区 即Index In Git) commit 到 local respository的内容,不想push,则使用git reset 将文件状态回转到staged|modified|unstag ...

  6. Git中的文件状态和使用问题解决

    (暂存区 即Index In Git) commit 到 local respository的内容,不想push,则使用git reset 将文件状态回转到staged|modified|unstag ...

  7. Android零基础入门第13节:Android Studio配置优化,打造开发利器

    原文:Android零基础入门第13节:Android Studio配置优化,打造开发利器 是不是很多同学已经有烦恼出现了?电脑配置已经很高了,但是每次运行Android程序的时候就很卡,而且每次安装 ...

  8. Android Studio 配置SVN实现代码管理

    Refference From:http://iaiai.iteye.com/blog/2267346 一.Android Studio配置SVN Android Studio关联配置SVN很简单,在 ...

  9. Android Studio 项目中,哪些文件应该忽略而不提交到svn的服务器中?

    Android Studio 中建议过滤的文件: - .idea 文件夹 - .gradle 文件夹 - 所有的 build 文件夹 - 所有的 .iml 文件 - local.properties  ...

随机推荐

  1. Openwrt LuCI模块练习详细步骤

    前言 又到了成胖子^_^每周一博的时间了.最近在学习openwrt luci方面的知识,为了贯穿整个知识体系,练习题目为: 通过页面配置周期性地往/tmp/addtest文件写入内容和时间戳 1.在w ...

  2. 标准IO的缓冲问题

    在看APU时,第8章进程时, #include <stdio.h> #include <unistd.h> ; char buf[] = "a write to st ...

  3. Sql 随机更新一条数据返回更新数据的ID编号

    DECLARE @parimaryTable(临时表)  Table(prizecode varchar(50)); update top (1)  数据表 set 字段a='数值' ,字段b=‘数值 ...

  4. 迅为顶级四核开发板 Exynos4412开发板,仅售560元

    业内公认最强四核 藐视一切挑战 ●四核CPU  ●四核GPU  ●双通道内存  ●HKMG技术  ●超级性能  ●至佳稳定  ●供货周期长 Exynos 4412处理器成功应用于三星GALAXY S3 ...

  5. 通用cube refresh方案

    通用cube refresh c# script 解决方法: 需要设置的变量如下: User::varcubename,User::varolapconnstr,User::varolapdbname ...

  6. 用命令测试安装好的OpenStack环境

    OpenStack三个节点icehouse-gre模式部署一文部署了一套OpenStack环境,接下来使用命令测试一遍. 首先要明确几个概念: 外网:可分配floating ip绑定到虚拟机,外部就可 ...

  7. Java开发和运行环境的搭建

    Java开发需要准备的东西? JDK+Eclipse 其中JDK的意思是Java开发工具包,Eclipse是进行用于做Java程序开发的工具(当然你也可以用记事本什么的去做). 其他开发工具:JCre ...

  8. Ember模板中的操作指向

    模板中的链接操作指向有三个地方,该模板对应的控制器和路由以及视图,默认是先跳转到控制器,如果控制器里没有定义模板中动作的方法,就去该模板对应的路由里找,如果还没找到,就去父级路由找,直到顶级路由,如果 ...

  9. Expression<Func<T,TResult>>和Func<T,TResult>

    1.Expression<Func<T,TResult>>是表达式 //使用LambdaExpression构建表达式树 Expression<Func<int, ...

  10. ztree插件(JQuery Tree)

    本次使用的ztree插件,基本上所有的需求都能满足,可谓功能强大. * [http://www.ztree.me/v3/api.php zTree v3.0 API 文档] * [http://www ...