git剖析

什麼是git
  • 是一種版本控制系統
  • 版本控制系統,一種記錄文件(文件多少不限制)內容變化,以便將來查閱特定版本修訂情況的系統。
    在這裏插入圖片描述
優勢
  • 分佈式文件系統;
  • 分支
基本概念
  • 倉庫: repository 。 包括本地倉庫、遠程倉庫
  • 工作區 : 項目工作目錄
  • 暫存區 : 文件索引區域
  • 分支 : 每一個分支,就是一個指針。指向不同時刻的文件快照
  • 文件狀態:未暫存、已暫存(未修改、已修改未提交、已修改未暫存)
    在這裏插入圖片描述
    在這裏插入圖片描述
常用命令
  • git [cmd] --help
  • git init
  • git clone
  • git status
  • git add
  • git commit
  • git fetch
  • git merge
  • git pull = git fetch && git merge
  • git push
  • git tag
  • git diff
  • git remote
  • git branch
  • git checkout
git commit做了什麼事
  • step1: 根據暫存區索引內容,對每個文件(header + 文件內容)進行hash值運算
  • step2: 所有的hash值,構成樹對象
  • step3: 構建commit對象;
  • step4: 存放到版本庫(本地倉庫)。【版本庫,就是一個鍵值對數據庫. 這裏的鍵值,就是hash值】
    commit 對象,數據結構:
struct Commit {
	Commit* parent;      	// 父提交
	Tree* tree;					//hash值,構成的樹對象(對應樹數據結構)
	char* commiter;			//提交人姓名
	char* email;					//提交人郵件
	char* msg;					//提交說明信息
}

指針概念理解舉例:
指針: 中國上海市靜安區廣中西路555弄88號

git高效,就是因爲指針切換,切換過程:

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

git工作流程:

在這裏插入圖片描述

最後,給大家一個建議:
  • 學習新知識,要有從0到1的心態,要敢於放棄已熟悉的知識,不要以舊有的知識體系思維方式來學習。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章