參考:極客時(shí)間 玩轉(zhuǎn)Git三劍客
1. Git
1.1 初始化
- username email
- 保證變更信息能夠溯源
- Code Review
- local 某個(gè)倉(cāng)庫(kù)生效
- global 全局生效
- System 對(duì)系統(tǒng)所有登錄用戶有效
- config --list 顯示配置信息
1.2 基本操作流程
- git init 初始化一個(gè)工作區(qū)
- git local 可以設(shè)置本地文件
- git 提交流程 先 add 再 commit
- git status 查看當(dāng)前狀態(tài)
- git log 查看日志
- Git 工作區(qū)和暫存區(qū)
- git add -u 將已經(jīng)跟蹤了的文件進(jìn)行保存
- 先在工作目錄修改 再保存到暫存區(qū) 最后進(jìn)行提交
1.3 Git 文件重命名
- 問(wèn)題: 如果直接重命名,需要?jiǎng)h除原有文件,然后將新的文件進(jìn)行添加,比較麻煩
- git reset --hard 回退操作
- git mv src tar 直接修改文件名
1.4 Git log 查看版本歷史
- git log --oneline 簡(jiǎn)潔查看
- git log -n4 查看最近4條記錄
- git branch -v 查看本地分支
- git log --all 所有分支的版本
- git log --graph 查看版本演進(jìn)圖
- git help 可以查看相關(guān)詳細(xì)內(nèi)容
1.5 gitk 圖像版本查看工具
1.6 .git 目錄探秘
Git .git 目錄文件結(jié)構(gòu)
-
HEAD 一個(gè)指針 指向了當(dāng)前的分支
HEAD 信息 -
config 當(dāng)前倉(cāng)庫(kù)的相關(guān)信息 git local 就是修改了當(dāng)前倉(cāng)庫(kù)的 config 文件
Config 信息 -
refs/
refs 目錄結(jié)構(gòu)
其中 head/ 就是指針 tags/ 是重要的里程碑
refs/heads/ 中的文件及內(nèi)容
master 中的內(nèi)容是一個(gè) commit 類型,是一個(gè)指針
tags/ 中存放的也是 commit 的指針 -
objects/ 目錄
objects 目錄下的內(nèi)容
object 中的內(nèi)容是 tree 和 blob
- git cat-file -t 可以查看 hash 值對(duì)應(yīng)的文件 類型
1.7 commit tree blob 三種對(duì)象
三種文件之間的對(duì)應(yīng)關(guān)系
一個(gè) commit 對(duì)應(yīng)一個(gè) tree
tree 是一個(gè)文件內(nèi)容變化的狀態(tài)樹
blob 是具體的某個(gè)文件 和文件名沒(méi)有關(guān)系,只要內(nèi)容相同,就是同一個(gè) blob,節(jié)省了存儲(chǔ)空間
$ git cat-file -p xxx 可以查看文件的類型
cat-file 查看文件