Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。
流行的版本控制軟件:Git 和 SVN 和 CVS
SVN與Git的最主要的區(qū)別:
SVN是集中式版本控制系統(tǒng),版本庫(kù)是集中放在中央服務(wù)器的,而干活的時(shí)候,用的都是自己的電腦,所以首先要從中央服務(wù)器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服務(wù)器。集中式版本控制系統(tǒng)是必須聯(lián)網(wǎng)才能工作,如果在局域網(wǎng)還可以,帶寬夠大,速度夠快,如果在互聯(lián)網(wǎng)下,如果網(wǎng)速慢的話,就納悶了。
Git是分布式版本控制系統(tǒng),那么它就沒(méi)有中央服務(wù)器的,每個(gè)人的電腦就是一個(gè)完整的版本庫(kù),這樣,工作的時(shí)候就不需要聯(lián)網(wǎng)了,因?yàn)榘姹径际窃谧约旱碾娔X上。既然每個(gè)人的電腦都有一個(gè)完整的版本庫(kù),那多個(gè)人如何協(xié)作呢?比如說(shuō)自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時(shí),你們兩之間只需把各自的修改推送給對(duì)方,就可以互相看到對(duì)方的修改了。
git是linux內(nèi)核開(kāi)發(fā)的版本控制工具;有兩個(gè)概念遷入和遷出
(1)遷入(check in):本地到服務(wù)器,又叫檢入。
$ git init //創(chuàng)建項(xiàng)目(即git文件夾)
$ ls -ah //查看隱藏的目錄
$ git add 文件 //上傳文件
$ git status //查看倉(cāng)庫(kù)狀態(tài)
$ git commit -m '說(shuō)明' //添加創(chuàng)建新文件
//第一用的時(shí)候要注冊(cè),要不倉(cāng)庫(kù)不認(rèn)識(shí);
//因?yàn)镚it是分布式版本控制系統(tǒng),所以需要填寫(xiě)用戶名和郵箱作為一個(gè)標(biāo)識(shí)。
$ git config --global user.email "郵箱名"
$ git config --global user.name "姓名"
$ git diff 文件 //查看文件修改了什么內(nèi)容
$ git log //查看日志(提交記錄)
$ git log --pretty=oneline //日志顯示一行
$ git reset --hard head^ //回退到當(dāng)前版本的上一個(gè)版本
$ git reset --hard 版本號(hào)(id號(hào)) //退回到這個(gè)版本,版本號(hào)是git log的時(shí)候會(huì)出來(lái)的一串id號(hào)
$ git reflog //查看每次提交的log日志
(2)遷出(check out):把服務(wù)器上的代碼拉倒本地,又叫檢出。
1、下載并安裝git
下載好以后傻瓜式(下一步.....)安裝就可以;安裝好以后,點(diǎn)擊鼠標(biāo)左鍵或在開(kāi)始里找git會(huì)出來(lái)如圖:

然后點(diǎn)擊Git Bash,會(huì)彈出一個(gè)類似的命令串口的東西,就說(shuō)明Git就安裝成功。

2、如何操作
- 創(chuàng)建版本庫(kù)。
什么是版本庫(kù)?版本庫(kù)又名倉(cāng)庫(kù),英文名repository,你可以簡(jiǎn)單的理解一個(gè)目錄,這個(gè)目錄里面的所有文件都可以被Git管理起來(lái),每個(gè)文件的修改,刪除,Git都能跟蹤,以便任何時(shí)刻都可以追蹤歷史,或者在將來(lái)某個(gè)時(shí)刻還可以將文件”還原”。
創(chuàng)建一個(gè)版本庫(kù)也是很簡(jiǎn)單的,我在F盤(pán)下新建了一個(gè)文件夾myTest,在文件夾內(nèi)點(diǎn)擊鼠標(biāo)右鍵,點(diǎn)擊Git Bash Here:如下圖

上圖$ git commit -m '說(shuō)明' 提交成功了,是因?yàn)槲乙郧白?cè)過(guò)了,如果是第一次使用需要先注冊(cè):$ git config --global user.email "郵箱名"和$ git config --global user.name "姓名";然后在一次$ git commit -m "說(shuō)明"
通過(guò)命令 git init 把這個(gè)目錄變成git可以管理的倉(cāng)庫(kù),這時(shí)候你的myTest目錄下會(huì)多一個(gè).git的目錄。這個(gè)目錄是Git來(lái)跟蹤管理版本的,沒(méi)事千萬(wàn)不要手動(dòng)亂改這個(gè)目錄里面的文件,否則,會(huì)把git倉(cāng)庫(kù)給破壞了。
文件夾下會(huì)出現(xiàn).git文件夾- 使用命令 git add hello.js添加到暫存區(qū)里面去。 如果和上圖一樣,沒(méi)有任何提示,說(shuō)明已經(jīng)添加成功了
- 通過(guò)命令git status來(lái)查看是否還有文件未提交,如上圖有一個(gè)文件沒(méi)有提交。
- 用命令 git commit告訴Git,把文件提交到倉(cāng)庫(kù),如上圖已經(jīng)提交了一個(gè)hello.js文件了
好,到這一步,一個(gè)文件夾就已經(jīng)上傳完畢了。但是我現(xiàn)在修改了hello.js文件。繼續(xù)使用git status來(lái)查看下結(jié)果。

上面的命令告訴我們 hello.js文件已被修改,但是未被提交的修改。接下來(lái)用$ git diff hello.js看修改了什么內(nèi)容

可以看到hello.js文件內(nèi)容添加了console.log("大家好");這時(shí)候還需要在一次提交:$ git add 文件;$ git commit -m " 說(shuō)明" ;

查看歷史記錄,$ git log

下面?zhèn)饕粋€(gè)項(xiàng)目到Github上試一試吧!
這是我的一個(gè)Angular的demo,在此文件夾下點(diǎn)擊鼠標(biāo)右鍵,選擇Git Bash Here,輸入命令$ git init

(1)使用命令 git add . 添加到暫存區(qū)里面去

(2)使用命令$ git commit -m "Angular的小Demo";把文件提交到倉(cāng)庫(kù)

(3)在github上New repository



(4)上傳github


ok,現(xiàn)在可以去github上看看你的項(xiàng)目傳上去了嗎。

