Git应用于Android项目的基本知识。

    常常将git,repo和gerrit三种工具配合起来使用,使Android开发中的部分工作自动化。并适应敏捷项目管理的需要。

    repo是Google在git上开发的版本库管理工具,是用Python编写的脚本库,用来统一管理多个git仓库。

    gerrit是适用于git项目的基于WEB的代码review及权限控制系统。它让有权限的用户可以提交代码,提交的代码review和verify后会自动合并。



    Git本地库分成工作目录,索引和仓库。假如说我们的产品是“修改”,我将其理解为,在一个工作台上产生修改(工作目录),给一批修改加上标签(索引),最后组成一个批次入库(仓库)。git的基本操作就是如何让修改在这三部分间双向传递。



    给修改加上标签:git add,可以添加文件,文件夹,或者.(当前目录所有内容)。相对应的,git reset HEAD 可以去掉标签,同样可以添加文件,文件夹或者所有内容。

    注意,如果“修改”是删除文件,使用git rm 而不是git add。

    这里的HEAD, 我将其理解成最近一次提交的批次,reset HEAD并不会改变本地文件。

另外,一次提交之前可以只add部分文件,没有加标签的文件不会入库,也不会受影响。

让一批加上标签的修改入库并统一成一个批次:git commit。同样,也可以反悔:git reset --soft HEAD^,这样上次入库的文件会回到加上标签但未入库的状态,上次提交的信息也没有了。

    有时候,我们多次提交但想让这些修改在仓库中显示成同一个批次,此时可以用git commit --amend。

    在这里,HEAD、HEAD^和HEAD~2分别表示最近一次,倒数第二次和倒数第三次提交批次。--soft表示工作目录和索引中的文件完全不会改变,只会改变仓库中的提交批次记录。相反,如果用--hard,那么本地文件就会变成和仓库中该批次文件一样。



    用git checkout可以将仓库中的文件取出来,覆盖工作台上的文件。但是,已经加标签(git add)的修改是不会被覆盖的。



    以上是我理解的git基本操作,虽然不准确,但确实对我使用git有帮助。这些都是在同一个分支上操作。而git的精华是多分支并行构建一个项目。下次有时间再来学习对git分支的基本操作。

Git应用于Android项目的入门知识:我的理解的更多相关文章

  1. Emojicon表情之快速应用于Android项目

    最近在项目中遇到了一个问题,找了半天原因,最后发现是用户在昵称中输入了emojicon表情,导致服务器不识别出现错误,而项目中也未对emojicon表情作支持,因此不得不考虑对emojicon表情做下 ...

  2. 记一次从git@osc导入Android项目到Eclipse的过程

    . . . . . 之前写了一个Android的小项目,放在了git@osc上面托管代码.第一次开发完之后直接用git bash提交上去,然后每次修改都是手工通过git bash往上面合并代码.感觉很 ...

  3. spring应用于web项目中

    目标: 在webapp启动的时候取到spring的applicationContext对象,并把applicationContext对象存到servletContext里面,在需要的时候直接从serv ...

  4. CocoaPods应用于iOS项目框架管理方案

  5. vue-cli脚手架搭建项目简单入门一

    搭建系统: Windows系统 简单了解Node.js.npm,安装Node.js,下载网址:http://nodejs.cn/download/ 查看node,npm安装成功与否.打开cmd命令行, ...

  6. git入门知识了解

    文章转自:http://www.cnblogs.com/cocowool/archive/2012/02/17/2356125.html 源代码管理系统(SCM)与版本控制   版本控制是一种记录若干 ...

  7. android git上开源的项目收藏

    本文为那些不错的Android开源项目第一篇--个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Ga ...

  8. android开发学习---基础知识学习、如何导入已有项目和开发一个电话拨号器

    一.基础知识点学习  1.Android体系结构 如图所示,android 架构分为三层: (1)最底层是linux内核,主要是各种硬件的驱动,如相机驱动(Camera Driver),闪存驱动(Fl ...

  9. Android入门知识

    1.Android开发环境 Android常用的开发环境包括两个:Eclipse + ADT 和Android Studio,Android Studio作为google官方推出的开发环境自然有得天独 ...

随机推荐

  1. UIScrollView的属性

    属性 作用 CGPoint contentOffSet 监控目前滚动的位置 CGSize contentSize 滚动范围的大小 UIEdgeInsets contentInset 视图在scroll ...

  2. [OC笔记] static 关键字

    在变量声明前加上static关键字,可以使局部变量保留多次方法调用所得到的值.当多个方法对一个静态变量进行操作时,多个方法共享同一个静态变量的值.

  3. mysql对GIS空间数据的支持,包括创建空间索引

    CREATE TABLE tb_geo( id INT PRIMARY KEY AUTO_INCREMENT, NAME ) NOT NULL, pnt POINT NOT NULL, SPATIAL ...

  4. uva11292贪心基础题目

    C - 贪心 基础 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:65536KB     64bi ...

  5. 判别linux机器字节序为大端还是小端

    代码如下: #include <iostream> #include <arpa/inet.h> #include <cstdio> using namespace ...

  6. forward 和redirect的区别

    1.从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地 ...

  7. :before与:after伪类的应用

    1.小三角样式

  8. MySQL错误Another MySQL daemon already running with the same unix socket

    今天遇到RT这个问题后,导致数据库错误,然后在国外网站发现了一个解决方法,记录如下: 原因是:多个Mysql进程使用了同一个socket. 解决方法是:直接把mysql.sock文件改名即可.也可以删 ...

  9. 火狐的bug

    初次启动火狐的界面并且默认是最大化的情况下,第一个业签时会发现火狐的浏览器无法达到下边框,请看图 途中可以看到,body区域没有填充满浏览器可用区域.但是当浏览器已经启动页签,现在是第二个页签时,则不 ...

  10. PHP 中数组函数 isset 效率比 array_key_exists 更高

    PHP 中数组函数 isset 效率比 array_key_exists 更高 PHP 浏览:4194 2014年04月05日 isset 和 array_key_exists 函数都可以用来测试数组 ...