各位同學,上回Git歷險記(一)講了一個 “hello Git” 的小故事。有的同學可能是玩過了其它分布式版本控制系統(DVCS),看完之后就觸類旁通對Git就了然于胸了;也有的同學可能還如我當初入手Git一樣,對它還是摸不著頭腦。
從這一篇開始,我就將比較“啰嗦”的和大家一起從零開始經歷Git使用的每一步,當然對我而言這也是一個重新認識Git的過程。
使用Git的第一步肯定是安裝Git,因為在多數平臺上Git是沒有預裝的。我平時主要的工作環境是windows和Linux(ubuntu),我想看這篇文章的同學多半也是在這兩個平臺下工作;下面我講一下如何在這兩個平臺下安裝和配置Git。
BTW:如果是蘋果平臺的用戶的安裝可以參看一下這里(1,2),配置和命令行的使用與windows、Linux(*nix)平臺差別不大。
Linux (*nix) 平臺
Linus開發Git的最初目的就是為了開發Linux內核服務的,自然它對Linux的平臺支持也是最棒的。在Linux下安裝Git大約有幾種方法:
從源代碼開始(這種方法也適合于多數*nix平臺)
從Git官網的下載頁面下載它最新穩定版的源代碼,就可以從源代碼開始編譯、安裝:
$ wget http://kernel.org/pub/software/scm/git/git-1.7.3.5.tar.bz2
$ tar -xjvf git-1.7.3.5.tar.bz2
$ cd git-1.7.3.5
$ make prefix=/usr all ;# prefix設置你的Git安裝目錄
$ sudo make prefix=/usr install ;# 以root權限運行
為了編譯Git的源代碼,我們還需要一些庫: expat、curl、 zlib 和 openssl; 除了expat 外,其它的庫可能在你的機器上都安裝了。
使用安裝包管理器(apt 或 yum)
在 fedora 等系統下用yum :
$ yum install git-core
在debian, ubuntu等系統下用apt :
$ apt-get install git-core
有時候,你系統里的安裝包管理器出現了問題,或是要安裝Git的機器不能上網、沒有編譯器的話,你可以從下面的站點去下載 “.deb” 或 “.rpm”的安裝包:
Windows平臺
windows平臺有兩個模擬*nix like運行環境的工具:cygwin,msys;Git在cygwin,msys下都有相應的移植版本。我個人覺得msys平臺下的msysGit最好用,現在我在windows下也是用的這個版本。
很多同學可能要問,現在windows下有那多Git用戶,為什么Git不直接出一個windows native版。俺當年翻看了一下Git的源代碼,它里面使用了大量的*nix平臺的native api,而這些api在windows下是沒有的,所以必須要用cygwin、msys這樣的一個中間層來滿足軟件移植的要求。
下面我“啰嗦”一下如何在windows下安裝msysGit。
下載
到它的下載頁面去下載一個最新的完整安裝包,筆者在撰寫本文時下載的是這個。
安裝
安裝的過程沒有什么好說的,一般是開始安裝后,一路的點擊“下一步”。由于windows平臺的換行符(CRLF)和Linux(*nix)平臺的換行符(LF)不同,那么在windows下開發其它平臺軟件的朋友有一個地方要注意(見下圖):
在這里一最好選“Checkout as-is, commit as-is”這個選項,這樣,Git就不會修改你代碼的換行符風格。
以前有個朋友因為選錯了這個選項,以致他在windows平臺下的一簽出(checkout)其它平臺的代碼,就會顯示”已修改“(modified),不過后來可能msysGit也認識到這個問題了,就把默認選項改成了這個選項。
BTW: 其實前面兩項也是有用的,如果對windows和Linux(*nix)平臺如何處理換行符很熟悉的話,也可以嘗試一下前面兩個選項:)
配置Git
在Linux下和windows下配置Git的方法差不多,只是在Linux下,可以在命令行里直接使用git config進行配置, 而在windows下則要先打開“Git Bash”,進入msysGit命令行界面,再用git config命令進行相應的配置操作。
好了,前面安裝好了Git,現在我們開始配置:
第一個需要配置的就是用戶的用戶名和email,因為這些內容會出現在你的每一個提交(commit)里面的,像下面這樣:
$ git log #我們用git log查看當前倉庫的提交(commit)日志
commit 71948005382ff8e02dd8d5e8d2b4834428eece24
Author: author <author@corpmail.com>
Date: Thu Jan 20 12:58:05 2011 +0800
Project init
下面的這兩行命令就是設置用戶名和email:
$ git config --global user.name author #將用戶名設為author
$ git config --global user.email author@corpmail.com #將用戶郵箱設為author@corpmail.com
Git的配置信息分為全局和項目兩種,上面命令中帶了“--global"參數,這就意味是在進行全局配置,它會影響本機上的每個一個Git項目。
大家看到,上面我們用的是@corpmail(公司郵箱);但是有時候我們可能也參與了一些開源項目,那么就需要新的用戶名和自己的私人郵箱,Git 可以為每個項目設定不同的配置信息。
在命令行環境,進入Git項目所在目錄,執行下面的命令:
$ git config user.name nickname#將用戶名設為nickname
$ git config user.email nickname@gmail.com #將用戶郵箱設為nickname@gmail.com
Git的設計哲學和Linux(*nix)一樣,盡量的使用
我們用cat、head命令查看全局配置信息文件,并假設相關配置信息存儲在文件的前3行(當然也有可能不在前3行,這里只是為了方便表示) 而項目配置文件是存放在Git項目所在目錄的".git/config"文件中,這里也像上面一樣用cat、head命令查看一下: 如果大家對于Git熟悉后,可以直修改”~/.gitconfig”,”.git/config”這兩個文件進行配置。 Git里還有很多可以配置的地方,大家可以參考一下git config 和 定制git。 這一篇寫起來有點平淡無奇,但這是一個Git用戶邁出的第一步。后面我還會有一系列的文章出來,都是我個人使用過程中的感悟。 有朋友問我:“為什么把文章叫作:‘Git歷險記’”。這是因為在使用Git的歷程中,我碰到過N多的問題;同時也覺得它有點小復雜。但是當這些問題解開后,就有時不得不贊嘆它設計的巧妙之處。 如果大家對于我的文章有什么問題和建議,歡迎給我寫郵件: 之前我建立了一個 git中文用戶組 ,如果大家在使用Git的過程中碰到什么麻煩事,歡迎你在這個用戶組里提問。 參考資料: 感謝張凱峰對本文的策劃及無比耐心的審校。 感謝家人在我的寫作過程中的默默支持。$ cat ~/.gitconfig | head -3
[user]
name = author
email = author@corpmail.com
$ cat .git/config | head -3
[user]
name = nickname
原文:http://www.infoq.com/cn/news/2011/01/git-adventures-install-config
email = nickname@gmail.com