常用版本控制工具之 GIT(一)

* 是什么

* 怎么用

* 用在哪些場(chǎng)合

* 有哪些注意點(diǎn)

## 什么是 git

* 是一款開(kāi)源的分布式版本控制工具。

* 所有的分布式版本控制工具中,git 是最快、最簡(jiǎn)單、最流行的工具

## git 的起源

* 作者是 Linux 之父:Linus Benedict Torvalds

* 為了輔助 Linux 內(nèi)核的開(kāi)發(fā)(管理源代碼)

## git 現(xiàn)狀

國(guó)外已經(jīng)非常普及,國(guó)內(nèi)并未普及

## 其它版本控制工具

* CVS 最早的開(kāi)源、免費(fèi)的集中式版本控制恐懼

* SVN使用最多的集中式版本控制工具

* ClearCase

*? VSS 微軟開(kāi)發(fā)的版本控制工具

## 集中版本控制

[image:41059088-B185-4490-81E7-B2DB59015D94-11366-000073DD2FF0685E/集中版本控制工具.png]

所有的代碼在一個(gè)地方進(jìn)行管理

## 分布式版本控制

[image:353310C9-26D8-4832-B305-B358C1787A16-11366-000060E253135606/屏幕快照 2017-02-10 18.51.50.png]

服務(wù)端和客戶端都有代碼倉(cāng)庫(kù)。

## git 和 svn 的簡(jiǎn)單對(duì)比

* 速度 :

很多情況下,git 的 速度遠(yuǎn)比 SVN 快

* 結(jié)構(gòu):

svn 集中式管理,git 分布式管理

* 其它:

svn 使用分支比較笨拙,git 可以輕松擁有無(wú)限個(gè)分支

svn 使用時(shí)必須聯(lián)網(wǎng),git 支持本地版本控制工作

舊版本的 svn 會(huì)在每一個(gè)文件夾下 放置一個(gè).svn,git 只會(huì)在根目錄 擁有一個(gè).git

## git 的工作流程

[image:92CFFCFF-CC34-45D1-AA56-94B727C0629F-11366-000069B4F7E3F383/屏幕快照 2017-02-10 21.33.22.png]

* 先 commit 本地緩存區(qū),在執(zhí)行 pull,push 操作。

* 分布式和集中式的最大區(qū)別在于:在分布式下開(kāi)發(fā)者可以本地提交,每個(gè)開(kāi)發(fā)者機(jī)器上都有一個(gè)服務(wù)器的數(shù)據(jù)庫(kù)

## 使用 git

*可以通過(guò)命令行指令或者圖形界面客戶端使用 git*

在mac 上,比較好用的 git 圖形界面客戶端有

* SourceTree[SourceTree](http://www.sourcetreeapp.com/download/)

* Github? [Github 客戶端](https://mac.github.com) 不過(guò)它是專門(mén)為 GitHub 網(wǎng)站設(shè)計(jì)的

* Xcode 集成的指令比較簡(jiǎn)單,不能進(jìn)行較復(fù)雜的操作

### 使用指令:

1)新建一個(gè)本地倉(cāng)庫(kù)

$ git init

2)配置倉(cāng)庫(kù)

*一次性配置* (會(huì)配置到管理文件的.git 文件夾下)

我是誰(shuí)

$? git config user.name myname

怎么聯(lián)系我

$? git config user.email myemail@email.com

*全局配置* (一勞永逸,放到個(gè)人用目錄下)

$ git config —global user.name myname

$ git config —global user.email myemail@email.com

### 如何學(xué)習(xí) git 指令

>? git通過(guò)使用指南的方式告訴我們某一個(gè)指令如何使用

> 這個(gè)指令其實(shí)是一個(gè)不可編輯的 vim

>? q 退出指南

> 按空格下一頁(yè)

> control + B 上一頁(yè)

> /需要搜索的內(nèi)容

$ git —help

e.g.: $ git —help clone

### git 常規(guī)指令

$ git status 查看文件狀態(tài)’

$ git add 添加文件到暫存區(qū)

$ git commit 文件名稱 -m 日志信息? *添加文件到”本地倉(cāng)庫(kù)”*

如沒(méi)有-m 說(shuō)明,會(huì)自動(dòng)進(jìn)入 vim 界面,要求我們輸入修改信息

注意:git 中每次新建或修改之后都要重新 add,svn 只需要 add 一次

文件狀態(tài)顏色

> 1、未添加之前的顏色? ——— 紅色 代表在”工作區(qū)”

> 2、添加到暫存區(qū)之后的顏色 ——— 綠色 代表在”暫存區(qū)”

## 工作原理

核心概念:

* 工作區(qū)(Working Directory):倉(cāng)庫(kù)文件夾里除.git 目錄以外的內(nèi)容

* 版本庫(kù)(Repository):.git 目錄,用于存儲(chǔ)記錄版本信息.

暫緩區(qū)(stage)

分支(master):git 自動(dòng)創(chuàng)建的第一個(gè)分支

HEAD指針:用于指向當(dāng)前分支

git add 和 git commit 的原理:

* git add:把文件修改添加到暫存區(qū)

* git commit : 把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支

[image:0B5090F4-4EF3-4739-97DE-2899BBC7231A-11366-000072C56B1EFB8D/屏幕快照 2017-02-11 09.19.35.png]

[image:190BE1D4-A8C0-4BF9-86F4-80455384D65C-11366-000072D514C2E003/屏幕快照 2017-02-11 09.20.20.png]

[image:4C2A9F6D-A258-4CB6-B656-9287F7B88E18-11366-000072DCDAC5CF3E/屏幕快照 2017-02-11 09.21.19.png]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 寫(xiě)在前面 Git版本控制工具是由Linux之父Linus Torvalds開(kāi)發(fā)的,Git工具的出現(xiàn)降低了軟件版本維...
    郭少_閱讀 3,884評(píng)論 0 7
  • GIT分布式版本控制系統(tǒng)最佳實(shí)踐 這篇文章來(lái)自于老男孩教育高級(jí)架構(gòu)師班12期的徐亮偉同學(xué)。 首先感謝老男孩架構(gòu)師班...
    meng_philip123閱讀 3,810評(píng)論 4 36
  • 來(lái)源:Git由淺入深之操作與指令作者:驚鴻三世(轉(zhuǎn)載已獲得原作者許可,如需轉(zhuǎn)載請(qǐng)與原作者聯(lián)系) 本篇正式開(kāi)始介紹G...
    極樂(lè)君閱讀 1,885評(píng)論 9 67
  • 天氣持續(xù)涼爽,趕緊把苗子種下了。辣椒已經(jīng)種完,茄子也已經(jīng)差不多了,就等蘆筍了。 生產(chǎn)與銷售的銜接仍...
    小貼士閱讀 197評(píng)論 0 0
  • 這段話很適合在孩子早期給報(bào)各種興趣班的家長(zhǎng)。 我想告訴天下為人父母者:游戲先于努力。對(duì)那些尚未有固定的激情卻準(zhǔn)備每...
    默默_3495閱讀 247評(píng)論 0 0

友情鏈接更多精彩內(nèi)容