git 教程一

浪花一朵朵發表於2015-05-15

git 是一個開源的分散式版本控制元件系統,用於敏捷高效地處理任何或小或大的專案。

Git是Linus Torvalds為了幫助管理Linux核心開發而開發的一個開放原始碼的版本控制軟體。

Git 與常用 的版本控制工具CVS,Subversion等不同,它採用了分散式的版本庫的方式,不必伺服器軟體支援。

 

Git與SVN區別

Git不僅僅是個版本系統。它也是個內容管理系統CMS,工作管理系統等。

如果你是一個具有使用SVN背景的人,你需要做一定的思維轉換。來適應Git提供的一些概念和我特徵。

Git與SVN區別點:

1,GIT是分散式的,SVN不是,這是GIT和其他非分散式的版本控制系統的,例如SVN,CVS等最核心的區別。

2,GIT把內容按後設資料方式儲存,它svn是按檔案:所有的資源控制系統都是把檔案的元資訊隱藏在一個類似.svn,.cvs等的資料夾裡。

3,GIT分支和SVN的分支不同,分支在SVN中一點不特別,就是版本庫的另外的一個目錄。

4,GIT沒有一個全域性的版本號,而SVN有:目錄為止這是跟SVN相比GIT缺少的最大一個特徵。

5,GIT的內容完整性優於SVN:GIT的內容儲存使用的是SHA-1雜湊演算法。這能確保程式碼內容的完整性,確保在遇到磁碟故障和網路問題時降低對版本庫的破壞。

 

Git配置

git 提供了一個叫做git config 的工具,專門用來配置或讀取相應的工作環境變數。

這些環境變數,決定了Git在各個環節的具體工作方式和行為。這些變數可以存放在以下三個不同的地方:

./etc/gitconfig檔案:系統中的對有的使用者都普遍適用的配置。若使用git config時用--system選項,讀寫的就是這個檔案。

。~/.config檔案:使用者目錄下的配置檔案只適用於該使用者。若使用git config時用 --global選項,讀寫的就是這個檔案。

當前專案的git目錄的配置檔案(也就是工作目錄下的.git/config檔案):這裡的配置僅僅針對當前的專案有效。每一個級別的配置會覆蓋上層的相同配置,所以.git/config裡的配置會覆蓋/etc/gitconfig中的相同的變數

在window系統上,git會找尋使用者主目錄下的.gitconfig檔案。主目錄即$HOME變數的指定的目錄,一般都是C:\Documetns and Settings\$USER.

此外,Git還會嘗試尋找/etc/gitconfig檔案,只不過看當初Git裝在什麼目錄,就以此作為目錄來定位。

使用者資訊

配置個人的使用者稱和電子郵件地址:

$ git config --gloabal user.name "test"

$ git config --global user.email test@163.com

如果用了 --global選項,那麼更改的配置檔案就是位於你使用者主目錄的那個,以後你所有的專案都會預設使用這裡的配置的使用者資訊。如果要在某個特定的專案中使用其他的名字或電郵,只要去掉--glabal選項重新配置即可,新的設定儲存在當前的.git/config檔案裡。

文字編輯器

設定Git預設使用的文字編輯器,一般可能會是Vi或者Vim。如果你有其他的偏好,比如Emacs的話,可以重新設定:

$git config --global core.editor emacs

差異分析工具

還有一個比較常用的是,在解決合併衝突時使用哪種差異分析工具。比如要改用vimdiff 的話:

$ git config --global merge.tool vimdiff

git 可以理解kdiff3,thdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和opendiff等合併工具輸出資訊。

當前,你可以指定使用自己開發的工具,具體怎麼做可以參閱其他的資料。

檢視配置資訊

要檢查已有的配置資訊,可以使用git config --list命令:

$git config --list

user.name=test

user.email=test@gmail.com

color.status=auto

color.branch=auto

color.interactive=auto

color.diff=auto

有時候會看到重複的變數名,那就說明它們來自不同的配置檔案(比如/etc/gitconfig和~/.gitconfig),不過最終Git實際採用的是最後一個。

也可以直接查閱某個環境變數的設定,只要把特定的名字跟在後面即可,像這樣:

$git config user.name

Test

 

相關文章