1.1 版本控制
版本控制是一種記錄若干文件內(nèi)容變化,以便查閱特定版本修訂情況的系統(tǒng)。
——1.1.1 本地版本控制系統(tǒng)
目錄----名字+備份時(shí)間
——1.1.2 集中化的版本控制系統(tǒng) CVS
目的:讓不同系統(tǒng)上的開發(fā)者協(xié)同工作。
有一個(gè)集中管理的服務(wù)器
缺點(diǎn):中央服務(wù)器單點(diǎn)故障
——1.1.3分布式版本控制系統(tǒng)(Git)
1.2 Git歷史
1.3 Git基礎(chǔ)要點(diǎn)
——1.3.1 直接快照,并非比較差異
Git并不關(guān)心文件內(nèi)容的具體差異,只關(guān)心文件數(shù)據(jù)的整體是否發(fā)生變化。
——1.3.2 近乎所有操作都可本地執(zhí)行
——1.3.3 時(shí)刻保持?jǐn)?shù)據(jù)完整性
Git在保存文件之前,要對(duì)文件進(jìn)行checksum計(jì)算,并以此作為數(shù)據(jù)的唯一標(biāo)識(shí)與索引
所以對(duì)文件或目錄的修改,Git都將知曉。
(Git使用SHA-1算法計(jì)算數(shù)據(jù)的校驗(yàn)和,通過對(duì)文件的內(nèi)容或目錄的結(jié)構(gòu)計(jì)算出一個(gè)SHA-1哈希值,作為指紋字符串)
——1.3.4 多數(shù)操作僅添加數(shù)據(jù)
常用的Git操作大多僅僅是把數(shù)據(jù)添加到數(shù)據(jù)庫(kù)。
——1.3.5 三種狀態(tài)
Git內(nèi)都只有 三種狀態(tài):已提交(committed),已修改(modified)和已緩存(staged)
| 狀態(tài) | 代表意義 |
|---|---|
| 已提交 | 文件已經(jīng)被安全地保存在本地?cái)?shù)據(jù)庫(kù)中 |
| 已修改 | 文件已經(jīng)被修改,但是還沒有提交保存 |
| 已暫存 | 把已修改的文件放在下次提交時(shí)要保存的清單中 |
| 目錄類別 | 意義 |
|---|---|
| git目錄 | 每個(gè)項(xiàng)目有一個(gè)Git目錄,用于保存元數(shù)據(jù)和對(duì)象數(shù)據(jù)庫(kù) |
| 工作目錄 | 從項(xiàng)目中去除某個(gè)版本的所有文件和目錄,用以開始后續(xù)工作 |
| 暫存目錄 | 簡(jiǎn)單的文件(目前還沒有看懂) |
Git基本工作流程
- 在工作目錄中修改某些文件
- 對(duì)這些修改了的文件作快照,并保留到暫存區(qū)域
- 提交更新,將保存在暫存區(qū)域的文件快照轉(zhuǎn)儲(chǔ)到git目錄中
1.4 Git安裝
我已經(jīng)安裝了~~~
1.5 初次運(yùn)行Git 前的配置
Git提供了 git config,用來配置或讀取相應(yīng)的工作環(huán)境變量
| 文件 | 含義 | 讀取方式 |
|---|---|---|
| /etc/gitconfig | 系統(tǒng)中對(duì)所有用戶都普遍適用的配置 | git config --system |
| ~/.gitconfig | 用戶目錄下的配置文件只適用于該用戶 | git config --global |
| 工作目錄中的.git/config | 當(dāng)前項(xiàng)目的git目錄的配置文件 | NULL |
配置文件以級(jí)別最低的配置文件為準(zhǔn)~
——1.5.1 用戶信息
配置個(gè)人的用戶名稱和電子郵件地址
git config --global user.name "lldebf" git config --global user.email myEmail@qq.com
——1.5.2 文本編輯器
git config --global core.editor emacs
——1.5.3 差異分析工具
——1.5.4 查看配置信息
git config --list
1.6 獲取幫助
獲取幫助的方法有三種
- git help <verb>
- git <verb> --help
- man git-<verb>