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

git是免費的開源的分佈式版本控制系統android

我說的直白點,要強調的點是每一個git clone下來的版本庫都是一個完整的版本庫,包括全部的歷史記錄和版本信息,不須要依賴網絡,這點在使用的過程當中你必定會有感觸,git不是蓋的。
git很快,可是這點我沒有大的感受;
git易於使用,相對svn而言,我不以爲git比之簡單,可是整體來講git仍是比較容易的,尤爲是服務器端的部署很是簡易。
本文僅僅介紹一下git的簡單使用。關於一些不經常使用的東西儘可能會過濾掉。 git

1.基本命令。 github

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
*這裏列舉幾個常見的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 <-->//合併分支<br>>git tag 
1
2
3
4
5
6
7
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: 服務器

1
git@github.com:fjtianxia/qianxudetianxia.git

      咱們以這個爲例子來演示如何使用git。
      說明:關於github上建立repository以及本地的配置,我已經配置完成,這不是本文要講的重點,因此我接下來直接演示使用。 網絡

3.克隆版本庫 
       使用git clone命令,克隆操做就是建立遠程版本庫的本地拷貝。
       舉例說明,我想把服務器的版本庫克隆到本地的code/文件夾下: 分佈式

1
2
3
4
5
6
7
8
9
> cd code
> git clone git@github.com:fjtianxia/qianxudetianxia.git
  //該命令會在code文件夾下建立qianxudetianxia文件夾,做爲遠程版本庫的一個本地拷貝,輸出結果以下
  Cloninginto  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,只要在上面命令後加上另外的名字便可: svn

1
2
//下面則是在本地生成test目錄,做爲遠程版本庫的一個本地拷貝
> git clone git@github.com:fjtianxia/qianxudetianxia.git test

      補充一點,svn中本地的版本只是服務器版本的一個切面,可是git不一樣,本地版本是一個完整的版本庫,包括全部的歷史信息和版本信息。
      我在Android拓展系列(1)--Android源碼下載文章中提到的下載android源碼也用到了git clone命令,以下: spa

1
>git clone git://android.git.kernel.org/platform/frameworks/base.git android-sdk-source

       區分:git init和git clone的差異,git init用於建立版本庫,這個內容我在本文此略去(本文着重於git的瞭解,關於建立和搭建服務器配置還有客戶端的使用都故意略去),git clone則是從遠程服務器克隆,包括歷史記錄。 .net

4.添加文件
      git中存放代碼的地方有三個,第一個是工做目錄樹,也就是咱們看到的代碼文件夾;第二是暫存區,是本地中和遠程版本庫的一個緩衝區域,暫存區通常存放的是本地準備要提交到遠程版本庫的修改;第三個是遠程版本庫。
      git add命令是把工做目錄樹中的修改添加到暫存區。 版本控制

1
2
3
4
5
> cd qianxudetianxia/
> touch test.txt//建立test.txt文件
> git add test.txt//添加到本地版本庫
> touch a.txt b.txt//建立多個文件
> git add .//提交當前文件夾的增長項到本地版本庫

      添加成功後,咱們用git status命令來查看如下當前工做目錄樹的狀態:

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

5.提交到本地版本庫

1
2
3
4
5
6
7
8
//git commit是提交命令,把修改提交到本地版本庫中
//-m參數,添加說明文字
> git commit -m'add the three new file'
[master a0885c9] add the threenew  file
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt
 create mode 100644 b.txt
 create mode 100644 test.txt

       提交成功。

6.查看分支。

1
2
3
4
5
>git branch -a
 //輸出以下,其中master是本地分支,origin是遠程版本庫的別名
* master
   remotes/origin/HEAD -> origin/master
   remotes/origin/master

7.合併到遠程版本庫。

1
2
3
4
5
6
7
8
9
//把本地分支master的修改合併到遠程版本庫origin中(的遠程分支master)
> git push origin master
Counting objects: 3, done.
Delta compressionusing  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真是一個很不錯的東西,推薦你們去了解下,並在工做中能去普及使用。

相關文章
相關標籤/搜索