Git是一款免費、開源的分布式版本控制系統,用于靈活高效地處理任何或小或大的項目.
分布式和集中式(eg:svn)的最大差別在于開發者可以本地送出。每個開發者機器上都有一個伺服器的資料庫。
特點就是本地送出這一步,這樣就使每個使用者都是git伺服器。
Git的功能特性:
從一般開發者的角度來看,git有以下功能:
1:從伺服器上克隆資料庫(包括代碼和版本資訊)到單機上。
2:在自己的機器上建立分支,修改代碼。
3:在單機上自己建立的分支上送出代碼。
4:在單機上合并分支。
5:建立一個分支,把伺服器上最新版的代碼fetch下來,然後跟自己的主分支合并。
6:生成更新檔(patch),把更新檔發送給主開發者。
7:看主開發者的回報,如果主開發者發現兩個一般開發者之間有沖突(他們之間可以合作解決的沖突),就會要求他們先解決沖突,然後再由其中一個人送出。如果主開發者可以自己解決,或者沒有沖突,就通過。
8:一般開發者之間解決沖突的方法,開發者之間可以使用pull 指令解決沖突,解決完沖突之後再向主開發者送出更新檔。
git 結果層次圖如下:
<a href="http://s3.51cto.com/wyfs02/M00/49/BD/wKiom1QZlWGyPTGxAADqrDRk-Xk080.jpg" target="_blank"></a>
下面先示範個例子;
安裝後,右鍵GitBash;這裡以github為伺服器,需要先去申請一個帳号;
1、右鍵GitBash界面如下:
<a href="http://s3.51cto.com/wyfs02/M02/49/B6/wKioL1QZTpTy00HPAACgWmEIpO0337.jpg" target="_blank"></a>
2、設定全局資訊,個人的使用者名及郵件位址
1
2
3
4
5
<code>leo@LEO-PC </code><code>/D/User/leo/Desktop</code> <code>(master)</code>
<code>$ git config --global user.name </code><code>"lansgg"</code> <code>#使用者名改成你自己的</code>
<code>$ git config --global user.email </code><code>"[email protected]"</code> <code>#郵件位址也是</code>
3、将github伺服器上我的代碼clone下來;我的代碼項目為test,clone位址見下圖紅線,我的項目裡面本來就有兩個檔案
<a href="http://s3.51cto.com/wyfs02/M02/49/B4/wKiom1QZUEzBbxANAAF2hmkXLhk880.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M02/49/B4/wKiom1QZUKexYwr1AAFMDYB_evA090.jpg" target="_blank"></a>
4、進入該test目錄,本目錄已經是git repository (本地倉庫);
6
<code>$ </code><code>cd</code> <code>test</code><code>/</code>
<code>leo@LEO-PC </code><code>/D/User/leo/Desktop/test</code> <code>(master)</code>
<code>$ </code><code>ls</code>
<code>README hello.rb</code>
可以看到我線上倉庫的兩個檔案
5、随便建立一個檔案
<code>$ </code><code>touch</code> <code>test</code><code>.</code><code>file</code>
<code>$ </code><code>echo</code> <code>"this is a test file "</code> <code>> </code><code>test</code><code>.</code><code>file</code>
6、将檔案添加到上傳隊列;加入staging area
<code>$ git add </code><code>test</code><code>.</code><code>file</code>
7、緩存送出,引号中的是對本次送出的描述,必須填寫,不能為空;将staging area 送出到repository
<code>$ git commit -m </code><code>"test commit"</code> <code>test</code><code>.</code><code>file</code>
8、将代碼push到線上repository
<code>$ git remote add origin https:</code><code>//github</code><code>.com</code><code>/lansgg/test</code><code>.git </code><code>#此為我們剛才clone的url </code>
<code>$ git push origin master </code><code>#會需要你輸入你的github帳号和密碼</code>
<a href="http://s3.51cto.com/wyfs02/M02/49/B5/wKiom1QZVejiT3DFAAHfrL1bwuk037.jpg" target="_blank"></a>
9、現在看看線上倉庫
<a href="http://s3.51cto.com/wyfs02/M01/49/B5/wKiom1QZVkuCJYmIAAEwoFghcoc602.jpg" target="_blank"></a>
同步成功;
本文轉自 西索oO 51CTO部落格,原文連結:http://blog.51cto.com/lansgg/1554530