Android拓展系列(2)--Git使用

标签: android 系列 git | 发表时间:2011-06-12 01:33 | 作者:谦虚的天下 Pei
出处:http://www.cnblogs.com/

git是免费的开源的分布式版本控制系统

我说的直白点,要强调的点是每个git clone下来的版本库都是一个完整的版本库,包括所有的历史记录和版本信息,不需要依赖网络,这点在使用的过程中你一定会有感触,git不是盖的。
git很快,但是这点我没有大的感觉;
git易于使用,相对svn而言,我不觉得git比之简单,但是总体来说git还是比较容易的,尤其是服务器端的部署非常简易。
本文仅仅介绍一下git的简单使用。关于一些不常用的东西尽量会过滤掉。

1.基本命令。

/**
*这里列举几个常见的git命令,让大家过过目
**/
1)基本操作
>git init //初始化版本库
>git clone //克隆版本库
>git add //添加新文件
>git commit //提交到本地版本库
>git checkout //检出(分支、标签)

2)分支
>git branch //列出分支
>git branch -r //列出远程分支
>git branch -a //列出所有分支
>git branch newBranch //基于当前分支创建新分支newBranch
>git branch -D branchName //删除分支branchName
>git branch -d branchName //仅删除已合并分支branchName
>git merge <--> //合并分支
>git tag 
3)历史
>git log //显示全部历史
>git log -p //显示版本历史,以及版本间的内容差异
>git log -5 //显示最近的5个提交
>git log -5 -p //显示最近的5个提交,以及版本间的内容差异
>...(很多很多参数...)
>git diff 112 115 //显示112和115版本的差别

2.开始使用git。
      我在github建立来一个工程qianxudetianxia:

git@github.com:fjtianxia/qianxudetianxia.git
      我们以这个为例子来演示如何使用git。
      说明:关于github上创建repository以及本地的配置,我已经配置完成,这不是本文要讲的重点,所以我接下来直接演示使用。

3.克隆版本库 
       使用git clone命令,克隆操作就是创建远程版本库的本地拷贝。
       举例说明,我想把服务器的版本库克隆到本地的code/文件夹下:

> cd code
> git clone git@github.com:fjtianxia/qianxudetianxia.git
  //该命令会在code文件夹下创建qianxudetianxia文件夹,作为远程版本库的一个本地拷贝,输出结果如下
  Cloning into qianxudetianxia...
  remote: Counting objects: 8, done.
  remote: Compressing objects: 100% (5/5), done.
  remote: Total 8 (delta 1), reused 0 (delta 0)
  Receiving objects: 100% (8/8), done.
  Resolving deltas: 100% (1/1), done.
      如果你不想看到生成的文件夹是qianxudetianxia,只要在上面命令后加上另外的名字即可:
//下面则是在本地生成test目录,作为远程版本库的一个本地拷贝
> git clone git@github.com:fjtianxia/qianxudetianxia.git test

      补充一点,svn中本地的版本只是服务器版本的一个切面,但是git不同,本地版本是一个完整的版本库,包括所有的历史信息和版本信息。
      我在Android拓展系列(3)--Android源码下载文章中提到的下载android源码也用到了git clone命令,如下:

>git clone git://android.git.kernel.org/platform/frameworks/base.git android-sdk-source
       区分:git init和git clone的差别,git init用于创建版本库,这个内容我在本文此略去(本文着重于git的了解,关于创建和搭建服务器配置还有客户端的使用都故意略去),git clone则是从远程服务器克隆,包括历史记录。

4.添加文件
      git中存放代码的地方有三个,第一个是工作目录树,也就是我们看到的代码文件夹;第二是暂存区,是本地中和远程版本库的一个缓冲区域,暂存区一般存放的是本地准备要提交到远程版本库的修改;第三个是远程版本库。
      git add命令是把工作目录树中的修改添加到暂存区。

> cd qianxudetianxia/
> touch test.txt //创建test.txt文件
> git add test.txt //添加到本地版本库
> touch a.txt b.txt //创建多个文件
> git add . //提交当前文件夹的增加项到本地版本库
      添加成功后,我们用git status命令来查看以下当前工作目录树的状态:

      在分支branch上有三个新文(new file)件。

5.提交到本地版本库

//git commit是提交命令,把修改提交到本地版本库中
//-m参数,添加说明文字
> git commit -m 'add the three new file'
[master a0885c9] add the three new file
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt
 create mode 100644 b.txt
 create mode 100644 test.txt
       提交成功。

6.查看分支。

>git branch -a
 //输出如下,其中master是本地分支,origin是远程版本库的别名
* master
   remotes/origin/HEAD -> origin/master
   remotes/origin/master

7.合并到远程版本库。

//把本地分支master的修改合并到远程版本库origin中(的远程分支master)
> git push origin master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 294 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@github.com:fjtianxia/qianxudetianxia.git
   8a7d54d..a0885c9  master -> master

到此,git的最基本使用已经熟悉了。

8.查看log。
      git log命令用于查看修改日志,它的参数非常丰富,在此不一一列举了,参考本文开始的基本命令部分。

9.查看分支 。
      我们先查看分支,再添加新的分支branch1来看看效果:
 
      新建分支后,我们可以通过checkout切换到指定分支。
      绿色颜色标识了当前所在分支。
      除了可以新建分支,也可以删除分支:
     分支功能是git最强大的一部分,还可以从基于远程分支创建新分支,合并分支等等。

10.查看标签。
     Tag标签,是为了记录一些重要的事件,被打成一个标志,比如android的版本号等等里程碑事件。
     tag和branch的添加,切换的使用方式基本相同。
     tag是只读的,该tag对应的工作目录树内容不能再修改了,而branch则不是。

11.小结。     
     git真是一个很不错的东西,推荐大家去了解下,并在工作中能去普及使用。

作者: 谦虚的天下 发表于 2011-06-12 01:33 原文链接

评论: 1 查看评论 发表评论


最新新闻:
· 新Chrome扩展帮助用户浏览WSJ收费内容(2011-06-12 11:55)
· iPad、iPod touch的超级视觉魔术(2011-06-12 11:44)
· 投资需谨慎 美媒挖底Groupon董事长(2011-06-12 11:43)
· 分析称:iOS 5与iPhone 5无关(2011-06-12 11:32)
· 苹果iCloud服务遭商标权起诉(2011-06-12 11:28)

编辑推荐:自己动手开发编译器(四)利用DFA转换表建立扫描器

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库

相关 [android 系列 git] 推荐:

Android拓展系列(2)--Git使用

- Pei - 博客园-首页原创精华区
git是免费的开源的分布式的版本控制系统. 我说的直白点,要强调的点是每个git clone下来的版本库都是一个完整的版本库,包括所有的历史记录和版本信息,不需要依赖网络,这点在使用的过程中你一定会有感触,git不是盖的. git很快,但是这点我没有大的感觉;. git易于使用,相对svn而言,我不觉得git比之简单,但是总体来说git还是比较容易的,尤其是服务器端的部署非常简易.

Git基础

- Wolf - 潘魏增
上个月末在公司内部作了一次《Git基础》的主题分享. 这里把分享内容公布出来,希望对一些朋友有用. 如果之前没有接触过Git,wikipedia上面已经有非常好的介绍. pdf格式:http://panweizeng.com/download/git-basics-meituan.pdf. keynote格式:http://panweizeng.com/download/git-basics-meituan.key.

Git-rebase 小筆記

- lepture - YORKXIN×YORKXIN
最近剛好有個機會整理很亂的 Git commit tree,終於搞懂了 rebase 的用法,筆記一下. 大家都知道 Git 有個特色就是 branch 開很大開不用錢,但很多 branches 各自開發,總要在適當時機 merge 進去 master. 看過很多 git 操作指南都告訴我們,可以妥善利用 rebase 來整理看似很亂或是中途可能不小心手滑 commit 錯的 commits ,甚至可以讓 merge 產生的線看起來比較簡單,不會有跨好幾十個 commits 的線.

Git 简明教程

- satoru - python.cn(jobs, news)
Git 是一款强大的分布式版本控制系统.在他的官网可以找到已经有很多著名的项目正在使用. Like most other modern version control systems, Git gives each developer a local copy of the entire development history, and changes are copied from one such repository to another.

git架构图解

- - CSDN博客研发管理推荐文章
  最近又遇到Git了,发现网络上Git的资料确实不咋滴,难懂不全面. 至于Git是什么我就不多说了,相比svn上手确实更难. 与svn集中版本库相比较,Git被称作分布式版本库,在分布式的版本库中任何一个库都可以作为中心库看待. 如果说svn是颗树,那么Git就像一张网. Svn在每个目录都有一个.svn文件夹存放信息,而git只在根目录才有,这就决定了svn可以单独拉取某个子目录或者某个文件,而git需要全部拉取.

一些 Git 設定偏好

- dylan - ihower { blogging }
讓 command line 指令列顯示目前處在哪一個 Git Brnach,最早是在 RGBA 看到這一招,非常方便. 請修改家目錄的 ~/.bashrc 或 ~/.bash_profile 檔案:. 記得打開 Git 的 color 設定,這樣 Git 指令的輸出結果才會加上顏色,像是 git status 等:.

Git和Mercurial(Hg)的分析

- gOODiDEA - 译言-电脑/网络/数码科技
来源Analysis of Git and Mercurial. 原文地址:http://code.google.com/p/support/wiki/DVCSAnalysis. (译者注:Mercurial以下简称Hg). 注:这篇分析完成于2008年夏季,当时我们正第一次为Google Code支持DVCS而作的研究工作.

GoogleCode 的 git 使用小记

- Fstone - Gracecode.com
早先就知道 GoogleCode 支持 git,不过一直没时间体验. 近期实在受不了频繁的 svn commit 加上公司的联通网络访问 GoogleCode 实在是慢得让人无法忍受,于是咬咬牙想把 GoogleCode 中那陈年的代码迁移到 git 控制中. 总得来讲,设置 GoogleCode 项目中新的版本控制方案并不复杂,只需要在管理中点击需要的版本控制系统就行.

理解Git工作流

- joyoner - FeedzShare
来自: 黑客志 - FeedzShare  . 发布时间:2011年08月04日,  已有 2 人推荐. 如果你不了解Git背后的设计初衷,那么你正处在危险境地,当然有很多参数可以强迫Git按照你的意愿行事,但这并不是Git被设计的工作方式,这就好比你可以把改锥当锤子使用,并且它也可以完成工作,但这对改锥没什么好处.

git和github简介(上)

- linyehui - 没做完,没准备好
在此贴上本人在Web标准化交流会6月25日北京站的主题分享. 在线PPT:http://jinjiang.github.com/slides/learning-git/. PPT源码:https://github.com/Jinjiang/slides/tree/gh-pages/learning-git.