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

來源:互聯網
上載者:User

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 masterCounting 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真是一個很不錯的東西,推薦大家去瞭解下,並在工作中能去普及使用。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.