[.net 面向對象程序設計進階] (25) 團隊開發利器(四)分布式版本控制系統Git——使用GitStack+TortoiseGit 圖形界面搭建Git環境
本篇導讀:
前面介紹了兩款代碼管理工具VSS和SVN,這兩種管理工具在很長一段時間曾為我們的代碼管理提供了便利,本篇介紹一款思維方式完全不同(也可以說不合常理)的版本控制系統——Git。可以說Git目前非常火,這與設計者劍指偏鋒的設計思想有很大關系。Git采用發散的思維管理代碼,最大的特點就是分布式,他可以讓來自不同地區的開發者共同完成一個作品,讓每個開發者都可以發揮個性,同時又可以由發起者(即項目管理者)統一發布新版本。各個地區的開發者,還可以離線開發,這樣版本管理系統之所以火,也和當今社會萬眾創新的氛圍分不開。通過Git你可以盡情的發揮想象力,開源的春天已經到來,讓我們啟航吧!
1. Git簡介
名稱:Git (Git的讀音為/gɪt/,開源、免費、分布式的版本控制系統)
廠商:Linux 的締造者 Torvalds 發起,為了更適合開源項目而設計,最初為Linux 版本,現已可以在Linux,Unix,Max,Windows各種系統中使用
功能:分布式版本控制、元數據方式存儲而非文件方式、GIT的內容存儲使用的是SHA-1哈希算法能確保代碼內容的完整性等,太多了讓我們慢慢挖掘。
優點:
(1)分布式:說起優點,大多都是相對其它管理工作比如SVN等,最大的優點就是分布式,最大化開發個性;
(2)輕負載:因為強化個體並且使用元數據存儲而非文件形式,公用服務器壓力較小;
(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的安裝及基本使用。下節更多實用的功能等着我們。
如果喜歡我的博文 ,記得點贊哦,也可以加QQ群交流,群號:467189533
==============================================================================================
<如果對你有幫助,記得點一下推薦哦,如有有不明白或錯誤之處,請多交流>
<對本系列文章閱讀有困難的朋友,請先看《.net 面向對象編程基礎》>
<轉載聲明:技術需要共享精神,歡迎轉載本博客中的文章,但請注明版權及URL>
==============================================================================================