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. redis的5种数据结构的简介

    5种数据结构 1.字符串 Redis 字符串是一个字节序列.在 Redis 中字符串是二进制安全的,这意味着它们没有任何特殊终端字符来确定长度,所以可以存储任何长度为 512 兆的字符串. 示例 12 ...

  2. C# winForm启动最小化到任务栏右侧通知栏并交互操作

    原文链接:http://blog.sina.com.cn/s/blog_45eaa01a01013u36.html C# winForm启动最小化到任务栏右侧通知栏并交互操作 一.主要功能:(1).程 ...

  3. 深入javascript——构造函数和原型对象

    常用的几种对象创建模式 使用new关键字创建 最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = &q ...

  4. UVA442 栈

    C - Matrix Chain Multiplication Crawling in process... Crawling failed Time Limit:3000MS     Memory ...

  5. Tornado模块分类和各模块之间的关系

    1. Core web framework tornado.web — 包含web框架的大部分主要功能,包含RequestHandler和Application两个重要的类 tornado.https ...

  6. php正则验证手机号码

    protected function checkphone(){ if(preg_match("/^1[34578]\d{9}$/", $phone)){ return false ...

  7. Oracle11g R2学习系列 之十 解决EM不能用

    不知道是什么原因https://localhost:1158/em,今天突然就不能用了.做了好多搜索也没有解决.现象是在services.msc中,不能重启OracleDBConsole服务,提示: ...

  8. 继续畅通工程--hdu1879

    继续畅通工程 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  9. Java compiler level does not match the version of the installed Java project facet.解决办法

    问题原因: 出现这个问题的原因是因为,eclipse/myeclipse的jdk编译版本与出现问题的项目JDK编译版本不一致所导致!   解决办法: 工程名---->右键properties-- ...

  10. 深度学习word2vec笔记之算法篇

    深度学习word2vec笔记之算法篇 声明:  本文转自推酷中的一篇博文http://www.tuicool.com/articles/fmuyamf,若有错误望海涵 前言 在看word2vec的资料 ...