Git Step by Step – (1) Git 簡介


由於工作的需要,代碼版本控制工具要從Perforce換成Git。說實話,剛開始真的很不適應,要從一個可以很好的支持用戶界面的工具轉到一個命令行工具,而且Git中有幾百個命令,一下子就傻眼了。

但是經過一段時間的使用和熟悉,已經慢慢適應了。所有准備一個整理一個Git使用系列,是對自己使用Git的一個總結,也希望可以對同樣剛開始使用Git的同學一些幫助。下面就開始探索Git了。

 

Git簡介

Git是Linus用C實現的一個分布式版本控制工具,注意這里對分布式的強調。不同於Git,像Perforce、SVN和CVS這類版本控制工具都是集中式的。

下面大概介紹下集中式版本控制工具和分布式版本控制工具的區別。

集中式

所謂集中式的版本控制,就是在一個系統中只有一個機器是服務端,其他機器全是客戶端。

以Perforce版本控制為例,在一個系統中會有一個Perforce服務器,所有的代碼以及版本信息都保存在這個服務器上。每個客戶端可以從服務器get下來一份代碼,然后在本地修改,最后submit修改的代碼。

可以看到集中式的版本控制還是有一些問題的:

  • 網絡依賴性強,工作環境保持網絡連接,如果網絡斷掉了,所有的客戶端就無法工作了。
  • 安全性較弱,所有的代碼以及版本信息保存在服務器中,一旦服務器掛掉了,代碼和版本控制信息就丟失了。

分布式

而在分布式版本控制系統中,沒有服務端/客戶端的概念,每台機器都是一個服務器。也就是說,在分布式本版控制系統中,每台機器都有一份代碼,並且有代碼的版本信息。

所以可以看到Git的優勢:

  • 每台機器都是一台服務器,無需依賴網絡就可以幫自己的更新提交到本地服務器,支持離線工作。當有網絡環境的時候,就可以把更新推送給其他服務器。
  • 安全性高,每台機器都有代碼以及版本信息的維護,所有即使某些機器掛掉了,代碼依然是安全的。

在Git中,同步更新的方式有很多種,可以把自己的更新推送給別人;也可以生成一個diff的patch,通過郵件方式把這個patch發送給別人。這些都將會在后面的文章中介紹。

建議:雖然分布式版本控制沒有服務端的概念,但一般在一個Git系統中,為了方便大家交換更新,會找一台機器作為中心服務器,這台機器的目地只是為了方便大家交換更新。即使這台中心服務器掛了,大家依然可以繼續工作,只是相互之間交換更新比較麻煩。

 

Git安裝

Git剛開始只能支持Linux和Unix環境,后來才慢慢的支持Windows系統。

由於我主要是在Windows環境下工作,所以下面就主要介紹Windows上面安裝Git。一般在Windows下使用Linux/Unix的工具時,需要Cygwin這樣的模擬環境。但是已經有人把模擬環境和Git打包好了,msysgit是Windows版的Git,從這里下載,然后按默認選項安裝即可。

安裝完成后,在開始菜單里找到"Git"->"Git Bash",彈出一個命令行窗口,就說明Git安裝成功!

安裝完成后,一般都會對本機的Git進行一些基本的配置。下面的命令就是給Git環境配置全局的用戶名和郵箱地址,這樣每一個從這台機器上提交的更新都會標上這些用戶信息。

git config --global user.name “your user name”
git config --global user.email “your email address” 

 

Git命令流

在Git中支持上百個命令,每個命令又有很多的選項,所以初學者看到這些就會有一些恐懼。

其實,真正接觸過Git一段時間后,會慢慢的發現我們會經常使用的命令也就十幾二十個,掌握了這些命令之后就可以滿足我們大部分的日常工作了。

下面是我根據日常使用整理的一個Git命令流圖,包括了一些常用的命令,可以方便自己查閱。

不要被密密麻麻的箭頭嚇到,其實都是比較初級、常用的命令,后面的文章會詳細介紹圖中命令的用法以及Git中的一些基本概念。注意,圖中沒有涉及branch、patch等信息,但是后面的文章會進行介紹。

 

最后,附上Git命令圖的Visio的源文件,感興趣的同學也可以做一個,方便查閱,或者在這個基礎上重新定制一個。

 git.zip

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM