本篇導讀:git
能夠說Git目前很是火,這與設計者劍指偏鋒的設計思想有很大關係。Git採用發散的思惟管理代碼,最大的特色就是分佈式,他可讓來自不一樣地區的開發者共同完成一個做品,讓每一個開發者均可以發揮個性,同時又能夠由發起者(即項目管理者)統一發布新版本。各個地區的開發者,還能夠離線開發,這樣版本管理系統之因此火,也和當今社會萬衆創新的氛圍分不開。經過Git你能夠盡情的發揮想象力,開源的春天已經到來,讓咱們啓航吧!算法
1. Git簡介 spring
名稱:Git (Git的讀音爲/gɪt/,開源、免費、分佈式的版本控制系統) 數據庫
廠商:Linux 的締造者 Torvalds 發起,爲了更適合開源項目而設計,最初爲Linux 版本,現已能夠在Linux,Unix,Max,Windows各類系統中使用 apache
功能:分佈式版本控制、元數據方式存儲而非文件方式、GIT的內容存儲使用的是SHA-1哈希算法能確保代碼內容的完整性等,太多了讓咱們慢慢挖掘。 安全
優勢:服務器
(1)分佈式:提及優勢,大多都是相對其它管理工做好比SVN等,最大的優勢就是分佈式,最大化開發個性;網絡
(2)輕負載:由於強化個體而且使用元數據存儲而非文件形式,公用服務器壓力較小;mybatis
(3)高性能:能快速處理分支,合併簡單快捷;而且分個分支的衝突解決很是方便。分佈式
(4)完整性:在保存到 Git 以前,全部數據都要進行內容的校驗和(checksum)計算,並將此結果做爲數據的惟一標識和索引。若是文件在傳輸時變得不完整,或者磁盤損壞致使文件數據缺失,Git 都能當即察覺。
(5)離線式:離線工做是Git一個重要特色,這種模式在之前獨佔式的版本控制的年代,是沒法想象的。
(6)還有不少……
缺點:提及缺點,就現有的幾種版本控制系統相比較,幾乎找不出明顯缺點,惟一明顯的就是代碼保密性差,一旦開發者把整個庫克隆下來就能夠徹底公開全部代碼和版本信息,這也是做者在設計之初的目標,以開源共享的大同世界爲目標。再要說缺點爲就是主觀方面的,比較學習難度稍大點(這個不要怕,後面會慢慢介紹),整個使用過程比較不符合常規思惟(這個也不要怕,總要推陳出新的嘛 )。
升級:開源項目,管理規範,升級及時。
推薦:★★★★★ (從小型到大型項目均適用,小到小小的代碼片斷,大到Android、facebook、PHP、spring、mybatis等等)
2. Git基礎
Git雖然這麼多優點,但大多教程中都使用命令方式操做,這讓初學者望而卻步,本篇儘可能使用圖形化界面介紹。
Git是一個全新思惟的版本控制系統,若是你以前使用VSS,CVS,SVN等工具,那麼你必定不要把類似的概念做對比,最好忘記之前的合併、分支之些具體實現模式。(這點慢慢展開)
Git的近乎全部操做都在本地進行,即離線式。不論你在何地,均可以投入開發之中,那麼如何控制版本,這點不要擔憂,在你網絡方便的時候上傳更改便可。
Git在上傳數據時進行一系統計算,最小化的數據傳輸,若文件沒有變化,Git 不會再次保存,而只對上次保存的快照做一連接。
Git擁有較高的可靠性,只要你養成按期推送的習慣,你能夠隨意在本地計算機上作實驗,不用擔憂弄丟數據,數據如何恢復,後面會慢慢介紹。
Git的文件有三種狀態:已提交(committed),已修改(modified)和已暫存(staged)。已提交表示該文件已經被安全地保存在本地數據庫 中了;已修改表示修改了某個文件,但尚未提交保存;已暫存表示把已修改的文件放在下次提交時要保存的清單中。
Git直接記錄快照,而非差別比較。Git 和其餘版本控制系統的主要差異在於,Git 只關心文件數據的總體是否發生變化,而大多數其餘系統則只關心文件內容的具體差別。
若是沒有理解,不要緊,慢慢來。
3. Git 基本工做流程
(1). 在工做目錄中修改某些文件。
(2). 對修改後的文件進行快照,而後保存到暫存區域。
(3). 提交更新,將保存在暫存區域的文件快照永久轉儲到 Git 目錄中。
所以,咱們能夠從文件所處的位置來判斷狀態:若是是 Git 目錄中保存着的特定版本文件,就屬於已提交狀態;
若是做了修改並已放入暫存區域,就屬於已暫存狀態;
若是自上次取出後,做了修改但尚未放到暫存區域,就 是已修改狀態。
後面咱們會進一步瞭解其中細節,並學會如何根據文件狀態實施後續操做,以及怎樣跳過暫存直接提交。
4.Git的安裝前準備
4.1 安裝包簡介
終於進入到激動人心的時刻了,經過上面的介紹,看着很神祕的東東,立刻就要進入咱們的視野中了。
在本系列文章中,我只介紹如何在Windows系統下安裝Git(雖然說Windows下使用多Linux/Unix工具須要模擬環境,帶來不少不便,可是國內大多同窗仍是使用Windows),其餘操做系統的同窗請參照其餘文章。
服務器端工具:
Git 官方的服務端 須要使用命令行建立版本庫等操做。
gitstack 第三方開源服務器端,專爲Windows訂製,集成了較成熟悉版本的Git,而且Web方式的操做界面,無需指令。
客戶端工具以下:
TortoiseGit (TortoiseSVN的兄弟)圖形化界面作的最好的Git客戶端
Git Extensions (Visual Studio 2013/2015集成的Git客戶端)讓您不使用命令行控制的 Git 的圖形化客戶端
git-cola 是一個Python開發的時尚和強大的git圖形用戶界面
EGit - (Java開發者Git客戶端插件)利用EGit能夠在 Eclipse中實現分行,合併,複製和同步庫
還有不少,咱們會重點介紹TortoiseGit 和 Git Extensions
4.2 安裝包下載
咱們下載Windows環境下咱們所需的安裝包
(1)服務器端
對於服務器端環境配置這方面,網上現有的資料並非不少,特別是在Windows環境下的服務器搭建
喜歡使用Git原生版本的同窗,請參照下面幾篇文章:
Windows+Git+COPSSH 方式,URL:http://blog.csdn.net/aaron_luchen/article/details/10498181 http://blog.csdn.net/code_style/article/details/38764203
對於Git命令行方式操做比較全的資料,URL:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
順便賦上Git官方的下載地址
Git服務器端Windows版本安裝包 (包含32位和64位,根據你的服務器操做系統選擇)
Git-2.7.0.2-64-bit.exe
官網URL:http://git-scm.com/download/win
(注意:咱們下面將要使用的服務器端環境並不須要下載原版)
不過COPSSH也不是免費的,而且上面的環境下還須要使用一些命令來完成部分操做(我並非歧視使用命令行的方式操做,首先這是一個入門文章,力求簡單,再者服務器端的搭建使用Linux更合適)
下面,我在本篇文章中爲了讓你們儘快用上Git,咱們也劍走偏鋒使用第三方純界面的服務器端gitstack ,他集成了Git,所以咱們的安裝下載,並不須要專門下載Git服務器端了
由於集成了apache和Git,這個安裝包有點大126M,耐心下載吧
準備下載的第一個安裝包:
gitstack 開源集成Git的界面服務器端
官網URL:http://gitstack.com/download/
下載過程以下圖:
(2)客戶端
TortoiseGit安裝包 和 中文語言包(包含32位和64位,根據你的客戶端操做系統選擇,我以64位爲例介紹)
官方URL:http://tortoisegit.org/download/
TortoiseGit-1.8.16.0-64bit.msi
TortoiseGit-LanguagePack-1.8.16.0-64bit-zh_CN.msi
下載過程以下圖:
下載完成的三個安裝包以下:
5. 服務器端安裝
準備工做就緒,咱們開始安裝服務器端,雙擊 GitStack_2.3.8.exe
注意:此時,若是有這個提示,咱們就須要暫時關閉佔用80端口的服務了,怎麼關閉呢,先找到什麼服務佔用了80
運行,CMD,輸入netstat -aon|findstr "80" 查找到 佔用80的程序的PID
而後在任務管理中,找到 中止便可
而後一路安裝完成,會自動打開管理界面
默認用戶和密碼admin登陸
這個界面是多麼熟悉啊,和SVN類似,建立 版本庫 、建立組、建立用戶、設置
到此咱們服務器的安裝就完成了,使用GitStack建立基於Windows服務器端就是這麼簡單。下面咱們介紹它的使用。
5. Git服務器端GitStack的使用
GitStack的使用很是簡單,和SVN服務端沒多大區別,先看一下設置
完成設置後,咱們建立一個版本庫和一個組及2個用戶
將2用戶加入該組
接下來,咱們給版本庫受權組MyGitGroup,因而,這兩個用戶就擁有該版本庫的操做權
先建立一個版本庫 MyGitObject,並配受權組或用戶(這裏咱們受權組,就擁有該組下的兩個用戶了)
將剛纔建的 組 MyGitGroup加入該版本庫
設置組的讀寫權限
到此服務端的配置完成,咱們能夠看到 ,在設置的版本庫目錄中,多了一個咱們剛建立的版本庫文件夾 MyGitObject.git
喜歡使用命令行的同窗,仍然能夠在這裏打開操做 ,能夠看到 GitStack的惟一做用,就是幫咱們提供了一個http服務+一個界面化配置並且,咱們的核心仍是Git
6.Git客戶端的安裝
客戶端工具衆多,咱們選擇前面已經下載好的「小烏龜」
找到前面下載好的TortoiseGit安裝包和語言包
安裝客戶端開始
全程下一步,完工,而後安裝語言包(喜歡英文版的能夠完工了)
語言包,下一步,完成!
語言包安裝完成後,咱們在開始菜單中找到 TortoiseGit的設置
選擇語言爲:簡體中文
客戶完工!@!
7.Git客戶端TortoiseGit的使用
繼續介紹TortoiseGit的使用
7.1 獲取服務器版本庫
先在本地計算機建立一個Git的工做目錄 F:\GitWorkArea
打開目錄在空白處右擊,能夠看到 TortoiseGit的菜單,初始操做能夠選擇Git克隆,即獲取服務端版本庫,也能夠選擇建立一個新的版本庫
由於以前咱們在服務端已經建立過了一個版本庫,咱們選擇 克隆。
在這裏URL咱們輸入 ,以前服務器端建立的版本庫地址,點肯定後,這時須要咱們認證一下用戶和密碼,這是必須的嘛 ,否則誰均可以克隆咱們的版本了
用戶和密碼驗證完成後,版本庫克隆成功。
7.2 建立新文件
接下來,必須是火燒眉毛的建立一個文件,開始咱們的Git之旅了
隨便寫點什麼,而後保存,關閉。
7.3 提交
提交咱們新建的文件到版本庫,很是簡單,在工做目空白處右擊
而後點擊,提交 到 master
這時,會有一個提示,須要設置一個交互的mail
在彈出的設置上,完成後肯定
而後填寫備註,記得養成良好的使用習慣,提交要寫備註哦,而後選中文件,肯定
提交完成~
7.4 查看變動日誌
查看日誌前,咱們在工做內再次建立一個文件,提交;而後再次打開該文件,修改一下內容提交。
在工做目錄右擊 選擇 TortoiseGit ,打開「顯示日誌」
在日誌窗口,咱們能夠看到三次變動的備註等信息,很是全面
先到這裏吧,不知不覺凌晨4點了,關於TortoiseGit的使用會讓你不斷驚喜的,下篇會繼續介紹分支的創建,分支間的靈活切換,合併等等很是實用的功能。
8.本節要點:
本節內容比較多,首先讓咱們對Git這一版本控制系統有了一個初步的認識,爲了不許多文章中一入手就是各類命令行,讓初學者望而卻步。我選擇了從一個最簡單的服務器環境配置入手,即GitStack來建立Windows下的Git服務器端,隨後介紹了咱們熟悉的"小烏龜"版本的客戶端工具,即TortoiseGit的安裝及基本使用。下節更多實用的功能等着咱們。