1. 起步
1.1了解版本控制
Git 常用于版本控制,那么何為版本控制?
版本控制——記錄一個或若干個文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng)。
有了它你就可以將某個文件回溯到之前的狀態(tài),甚至將整個項目都回退到過去某個時間點的狀態(tài),你可以比較文件的變化細節(jié),查出是誰更改了哪個地方,找出出現(xiàn)問題的原因等。
-
本地版本控制系統(tǒng)
采用某種簡單的數(shù)據(jù)庫來記錄文件的歷次更新差異,無法做到多人協(xié)同工作。 -
集中化的版本控制系統(tǒng)
服務(wù)器集中管理,,保存所有文件的修訂版本,協(xié)同工作的人們通過客戶端連接到這臺服務(wù)器,取出最新的文件或提交更新。
優(yōu)點:每個人可在一定程度上看到項目其他人在做什么,管理員也可以輕松掌握每個開發(fā)者權(quán)限,且遠比在各個客戶端上維護本地數(shù)據(jù)庫輕松。
缺點:若中央服務(wù)器出現(xiàn)故障,則協(xié)同人員無法工作,若磁盤損壞又沒有恰當備份,則將丟失所有數(shù)據(jù),只剩下各自機器上的數(shù)據(jù)。 -
分布式版本控制系統(tǒng)
客戶端不止提取最新版本文件快照,而是將代碼倉庫完整地鏡像下來,即使服務(wù)器發(fā)生故障,本地仍有數(shù)據(jù),可從本地倉庫回復(fù)。
即每次克隆操作,都是一次對代碼倉庫的完整備份。
且許多這類系統(tǒng)都可以指定和若干不同的遠端代碼倉庫進行交互。
1.2 Git 簡介
直接記錄快照,而非差異比較
Git 更像一個小型的文件系統(tǒng),每一次提交或進行其他操作時,Git 會對當時的全部文件制作一個快照并保存這個快照的索引,若文件沒有更改,不再重新存儲,保留一個鏈接指向之前存儲的文件。
即指向所有當前版本的最新文件。近乎所有操作都是本地執(zhí)行
因為每次克隆時都將數(shù)據(jù)全部拷貝,所以執(zhí)行的絕大多數(shù)操作都是需要訪問本地文件和資源,效率高;
且及時你離線或沒有 VPN 時,幾乎也可以進行任何操作。Git 保證完整性
Git 中所有數(shù)據(jù)在存儲前都會進行校驗,因此不可能在 Git 不知情時更改任何文件內(nèi)容或目錄內(nèi)容。即所有操作都會被記錄。Git 一般只添加數(shù)據(jù)
你執(zhí)行的 Git 操作,幾乎只往 Git 數(shù)據(jù)庫中增加數(shù)據(jù),很難讓 Git 執(zhí)行任何不可逆操作或是以任何方式清除數(shù)據(jù)。-
三種狀態(tài):Git 倉庫、工作目錄、暫存區(qū)域
三種狀態(tài)示意圖
1)工作目錄
對項目的某個版本獨立提取出來的內(nèi)容,放在磁盤上供開發(fā)者使用或修改
2)Git 倉庫
Git 用來保存項目的元數(shù)據(jù)和對象數(shù)據(jù)庫的地方。Git最重要的存儲數(shù)據(jù)的部分。
3)暫存區(qū)域
一個文件,保存了下次將提交的文件列表信息,一般在 Git 倉庫中。
基本的 Git 工作流程:
工作目錄中修改文件 => 文件快照存放到暫存區(qū) => 提交更新,找到暫存區(qū)的文件,永久存儲到 Git 倉庫
1.3 命令行
Git 有多種使用方式,可使用原生命令行模式,也可使用 GUI 模式。
但只有在命令行模式下才能執(zhí)行 Git 的所有命令,而大多數(shù)的 GUI 軟件只實現(xiàn)了 Git 所有功能的一個子集以降低操作難度。
1.4 安裝 Git
安裝包下載地址:https://git-scm.com/downloads,下載后直接安裝即可
1.5 初次運行 Git 前的配置
Git 自帶 git config 工具來設(shè)置控制 Git 外觀和行為的配置變量。這些變量存儲在三個不同位置:
1. /etc/gitconfig 文件:——包含系統(tǒng)上每一個用戶及他們倉庫的通用配置。
對應(yīng) git config --system
2. ~/.gitconfig 或 ~/.config/git/config 文件:——只針對當前用戶。
對應(yīng) git config --global
3. 當前實用倉庫的 Git 目錄中的 config 文件(.git/config):——針對該倉庫
每一個級別覆蓋上一級別的配置。
在 Windows 系統(tǒng)中,Git 會查找 $HOME 目錄下(一般情況下是 C:\Users$USER)的 .gitconfig 文件。 Git 同樣也會尋找 /etc/gitconfig 文件,但只限于 MSys 的根目錄下,即安裝 Git 時所選的目標位置
1.5.1 用戶信息
安裝完 Git 后應(yīng)首先配置你的用戶名和郵件地址。因為每一個 Git 的提交都會使用這些信息,且會寫入到你的每一次提交中,不可更改。
git config --global user.name "John Doe"
it config --global user.email johndoe@example.com
注: 使用了 --global,則該命令運行后,無論你在該系統(tǒng)上做任何事情,Git 都會使用那些信息。若你想針對特定項目使用不同的用戶名稱和郵件地址,可以在特定項目目錄下運行沒有 --global 選項的命令進行配置。eg:
git config user.name "Tony"
1.5.2 文本編輯器
Git 需要你輸入信息時會調(diào)用文本編輯器,默認為 Vim,你可以通過
git config --global core.editor editorname 來進行配置。則調(diào)用時會調(diào)用你配置過的文本編輯器。
1.5.3 檢查配置信息
git config --list可查看當前 Git 的全部配置。
git config <key>來查看某一項配置,例如:git config user.name
1.5.4 獲取幫助
當你使用 Git 需要幫助時,以下三種方法可以找到 Git 命令的使用手冊:
git help <verb>
git <verb> --help
man git-<verb>
例如:
git help config 可獲得 config 命令的手冊。