簡介Git是一個(gè)開源的分布式版本控制系統(tǒng),,可以對(duì)任何類型的文件進(jìn)行版本控制。 特點(diǎn)直接記錄快照,,而非差異比較 大部分系統(tǒng)都是以文件變更列表的方式存儲(chǔ)每個(gè)文件與初始版本的差異,, Git則把數(shù)據(jù)看作是對(duì)小型文件系統(tǒng)的一組快照,在文件發(fā)生變更時(shí)對(duì)當(dāng)時(shí)的全部文件制作一個(gè)快照并保存這個(gè)快照的索引,,形成一系列快照流,; 近乎所有操作都是本地執(zhí)行 在Git中的絕大多數(shù)操作都只需訪問本地文件和資源,一般不需要來自網(wǎng)絡(luò)的其它信息,,因?yàn)樵诒镜卮疟P上就有項(xiàng)目的完整歷史,; 保證完整性 Git中所有數(shù)據(jù)在存儲(chǔ)前都通過SHA-1哈希算法計(jì)算校驗(yàn)和,,然后以校驗(yàn)和來引用,這意味著不可能在Git不知情的情況下更改任何文件內(nèi)容,; 一般只添加數(shù)據(jù) 執(zhí)行的Git操作幾乎只往Git倉庫中增加數(shù)據(jù),,很難讓Git執(zhí)行任何不可逆操作,或者讓它以任何方式清除數(shù)據(jù),。
狀態(tài)轉(zhuǎn)換Git有三種狀態(tài): 已修改:表示修改了文件,,但還沒保存至Git倉庫; 已暫存:表示對(duì)一個(gè)已修改文件的當(dāng)前版本做了標(biāo)記,,使之包含在下次提交的快照中,; 已提交:表示文件已經(jīng)安全的保存至Git倉庫。
與之對(duì)應(yīng),,Git項(xiàng)目具有以下三個(gè)工作區(qū)域: 工作目錄:對(duì)項(xiàng)目某個(gè)版本獨(dú)立提取出來的內(nèi)容,,放在磁盤以供修改與使用; 暫存區(qū)域:是一個(gè)文件,,保存下次將提交的文件列表信息,; Git倉庫:Git用來保存項(xiàng)目元數(shù)據(jù)和文件對(duì)象的倉庫。
工作流程在工作目錄中修改文件,; 暫存文件,,將文件快照放入暫存區(qū)域; 提交更新,,找到暫存區(qū)域的文件,,將文件快照永久性存儲(chǔ)到Git倉庫。
安裝在Ubuntu系統(tǒng)中安裝Git: $ sudo apt-get install git 配置Git通過git config 工具來幫助設(shè)置控制Git外觀和行為的環(huán)境變量,,這些變量保存在以下三個(gè)地方: /etc/gitconfig:包含系統(tǒng)上每一個(gè)用戶及其倉庫的通用配置,,可使用git config --system 讀寫配置變量; ~/.gitconfig:只針對(duì)當(dāng)前用戶,,可使用git config --global 讀寫配置變量,; 當(dāng)前倉庫.git目錄中的config文件:只針對(duì)該倉庫,可使用git config 讀寫配置變量,。
上述文件,,每一個(gè)級(jí)別都會(huì)覆蓋上一個(gè)級(jí)別的配置。 設(shè)置當(dāng)前用戶的用戶名與Email地址: $ git config --global user.name "username"
$ git config --global user.email "[email protected]" 查看配置信息: $ git config --list
|