zoukankan      html  css  js  c++  java
  • Git应用于Android项目的入门知识:我的理解

    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分支的基本操作。

  • 相关阅读:
    Java基础06 组合
    纸上谈兵: 树, 二叉树, 二叉搜索树
    Java基础05 实施接口
    纸上谈兵: 队列 (queue)
    纸上谈兵: 数学归纳法, 递归, 栈
    Java基础01 从HelloWorld到面向对象
    纸上谈兵: 表 (list)
    Java基础02 方法与数据成员
    纸上谈兵: 排序算法简介及其C实现
    纸上谈兵: 栈 (stack)
  • 原文地址:https://www.cnblogs.com/yuanchongjie/p/4448374.html
Copyright © 2011-2022 走看看