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)速慢的話(huà),就納悶了躲庄。
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ě)用戶(hù)名和郵箱作為一個(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è)類(lèi)似的命令串口的東西未斑,就說(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ù)給破壞了。
- 使用命令 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)目傳上去了嗎饼丘。