git的基本使用

提到了git,那麼我們首先來了解一下什麼是git


  1. 什麼是git?

許多人都知道SVN是一個版本管理工具,Git也是一個版本管理工具,是目前世界上最先進的分佈式版本管理工具,沒有之一!對於版本工具而言,其實就是相當於我們在軟件開發中對立的一個操作記錄,項目中不同的開發進度分別代表不同的點,有效的記錄分配各個項目模塊進行管理,並且當出現錯誤時可以及時的進行回退,有點像數據庫的事務。。。


2.集合式vs分佈式:

    集中式版本控制系統,版本庫是集中存放在中央服務器的,而幹活的時候,用的都是自己的電腦,所以要先從中央服務器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給中央服務器。中央服務器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館。

    集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在局域網內還好,帶寬夠大,速度夠快,可如果在互聯網上,遇到網速慢的話,可能提交一個10M的文件就需要5分鐘,這還不得把人給憋死啊。

    那分佈式版本控制系統與集中式版本控制系統有何不同呢?首先,分佈式版本控制系統根本沒有“中央服務器”,每個人的電腦上都是一個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因爲版本庫就在你自己的電腦上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

    和集中式版本控制系統相比,分佈式版本控制系統的安全性要高很多,因爲每個人電腦裏都有完整的版本庫,某一個人的電腦壞掉了不要緊,隨便從其他人那裏複製一個就可以了。而集中式版本控制系統的中央服務器要是出了問題,所有人都沒法幹活了。


3.git的基本使用:

    首先大多數了解git其實就是github這個網站,然後來進行git的學習。github相當於git的一個遠程倉庫,這個我們後面提及,我們先來進行git的基本學習.

首先既然是版本管理工具,那麼我們肯定要有一個版本庫來進行項目的管理咯。

  1. 版本庫的創建:

    每一個項目肯定要獨立分配一個文件夾,然後在當前項目的文件夾下我們就建立一個倉庫唄。

    通過使用:

git init

  這個簡單的命令就可以建立一個倉庫了,然後git如何證明當前目錄是一個倉庫呢?當然是放一個版本信息文件咯,.git就是這個文件,大家可以試一試

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/83/4B/wKioL1dvx-LAoXk-AABEz_UQepc164.png" style="float:none;" title="QQ圖片20160626162930.png" alt="wKioL1dvx-LAoXk-AABEz_UQepc164.png" />


2.將文件添加到版本庫中。我們創建一個文件,READBE.txt(我.打錯成,了,不過不影響).

然後在文件裏面隨便寫一點內容。記住,這個創建的文件一定要在我們當前的倉庫目錄下:

然後通過

git add <文件名>
git commit -m "註釋信息"

其中分兩步的原因你可以吧不同的文件add 到暫存區中,然後在通過commit提交到當前分支,這些概念我們後面說,現在大家就理解這樣操作就可以把文件提交到倉庫中了!

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/83/4C/wKiom1dvx-KzctzsAACdJUDmVD8053.png" style="float:none;" title="QQ圖片20160626163011.png" alt="wKiom1dvx-KzctzsAACdJUDmVD8053.png" />

上面出現了

git config --globa user.name "Your Name"
git config --globa user.email "[email protected]"

這個就是我們安裝git完成後設置自己的賬戶信息了.


git status命令:
    這個命令是查看我們當前的倉庫文件是否已被修改的,如果修改了就會出現修改信息。

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/83/4B/wKioL1dvx-OzpQPaAABwSGqOaew806.png" style="float:none;" title="QQ圖片20160626163028.png" alt="wKioL1dvx-OzpQPaAABwSGqOaew806.png" />

git diff命令:

顧名思義就是查看difference,顯示的格式正是Unix通用的diff格式,可以從上面的命令輸出看到,我們在第一行添加了一個“distributed”單詞。

知道了對readme.txt作了什麼修改後,再把它提交到倉庫就放心多了,也就是顯示我們對倉庫的操作。

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/83/4C/wKiom1dvx-Phlh5NAAA4CP7LGGs456.png" style="float:none;" title="QQ圖片20160626163047.png" alt="wKiom1dvx-Phlh5NAAA4CP7LGGs456.png" />

再次commit之後就可以看到沒有發生改變了


650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/83/4C/wKiom1dvx-XCMHsIAAAfkT08fE0662.png" title="QQ圖片20160626163213.png" alt="wKiom1dvx-XCMHsIAAAfkT08fE0662.png" style="float:none;" />

2.如何實現版本的回退呢?

我們對當前的倉庫進行多次修改和add,commit之後,然後我們通過:

git log

這個命令是可以查看我們操作版本庫的各項信息。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/83/4B/wKioL1dvx-SwNmWzAABYATt4_l8594.png" style="float:none;" title="QQ圖片20160626163136.png" alt="wKioL1dvx-SwNmWzAABYATt4_l8594.png" />

其實就是每當我們進行一次git commit -m ""的操作時就會記錄到這個版本庫信息中,我們進行一個版本回溯就是根據commit進行的。


也可以利用

git log --pretty=oneline

 進行簡單版本信息查看

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/83/4B/wKioL1dvx-WDKgYOAAAshFBY0wo306.png" style="float:none;" title="QQ圖片20160626163321.png" alt="wKioL1dvx-WDKgYOAAAshFBY0wo306.png" />


如何進行版本回溯呢?

其實在上面的log命令中就有一個commit的版本信息,這個是git他內部隨機生成的一個16進制的版本信號嘛,我們可以使用:

git reset --hard HEAD^

進行版本回退。一個^代表一次2個代表2次。HEAD~100代表100次。

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/83/4B/wKioL1dvx-aA-laCAAA5Q6f4w-w932.png" style="float:none;" title="QQ圖片20160626164638.png" alt="wKioL1dvx-aA-laCAAA5Q6f4w-w932.png" />


然後我們在進行查看就發現回到了之前的版本:

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/83/4C/wKiom1dvx-fQPLOYAAA8YbAmi68858.png" style="float:none;" title="QQ圖片20160626164656.png" alt="wKiom1dvx-fQPLOYAAA8YbAmi68858.png" />


如果往前呢?其實只要利用commit版本號就好,如果我們回溯版本之前沒有進行關閉終端。還能夠查詢到回溯之前版本的commit碼,就可以拷貝或者寫一點前面的

通過

git reset --hard <commit>

進行回到我們之前的版本了

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/83/4C/wKiom1dvx-jSl2udAABAHgj17KY472.png" style="float:none;" title="QQ圖片20160626164721.png" alt="wKiom1dvx-jSl2udAABAHgj17KY472.png" />

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/83/4B/wKioL1dvx-iTAnsOAAArevz0eTA932.png" style="float:none;" title="QQ圖片20160626164734.png" alt="wKioL1dvx-iTAnsOAAArevz0eTA932.png" />


發佈了101 篇原創文章 · 獲贊 9 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章