Git使用(以及可用于解決問(wèn)題的思路)

1.什么是Git?

1.一個(gè)版本控制工具

2.Git中區(qū)域分為哪幾塊?有什么作用?

1.工作區(qū) 存儲(chǔ)當(dāng)前工作代碼

2.暫存區(qū)

3.版本區(qū) 所有版本存儲(chǔ)的地方

3.在一個(gè)文件中,如何實(shí)現(xiàn)對(duì)文件的管理?

1.所有文件成為git對(duì)象,則納入git的管理范圍。

2.將多個(gè)對(duì)象統(tǒng)一起來(lái),作為樹(shù)對(duì)象。

3.給樹(shù)對(duì)象加上包裝,注釋、作者,成為提交對(duì)象。

4.Git底層命令實(shí)現(xiàn)了什么功能?它們的高層表現(xiàn)是怎么樣的?

1.Git通過(guò)對(duì)每一個(gè)文件,作一個(gè)hash,保存于.git/objects/中,代表數(shù)據(jù)

具體實(shí)現(xiàn)方法:git hash-object filename [-w]             -w代表write,寫(xiě)入數(shù)據(jù)庫(kù),沒(méi)有則僅返回這個(gè)文件的哈希值

注:每一個(gè)文件的哈希值不同(只要有任何一點(diǎn)點(diǎn)不同,都會(huì)不同)

結(jié)果:文件成為git對(duì)象,納入Git的管理范圍。
image
2.Git將hash值與filename打包,作為索引,稱作index,存入暫存區(qū)。(在.git下有index文件)

一方面通過(guò)filename對(duì)應(yīng)工作區(qū)文件,一方面通過(guò)hash值找到該文件。

具體實(shí)現(xiàn)方法:git update-index --add --cacheinfo 文件類型[100644] hash值 filename
image
3.當(dāng)暫存區(qū)具有一定量的index以后(隨便多少),將索引打包,生成樹(shù)對(duì)象,管理一系列文件

具體實(shí)現(xiàn)方法:git write-tree
image
4.給樹(shù)對(duì)象打包,加上信息,成為一個(gè)文件包,稱作提交對(duì)象

具體實(shí)現(xiàn)方法:git commit-tree 樹(shù)的哈希值 -m "注釋"
image
注1:由于提交的時(shí)間不同,相應(yīng)提交對(duì)象生成每一次并不相同。

注2:此處還不涉及關(guān)于暫存區(qū)到版本庫(kù)的高層管理,所以可以多次生成提交對(duì)象(但事實(shí)上如果相同,并沒(méi)有意義)

5.這些命令的高層表現(xiàn)

    1+2.git add ./為全部文件 filename為單個(gè)文件

    3+4.git commit -m "xxx"

5.Git的分支是什么?為什么憑借分支,能夠?qū)崿F(xiàn)版本控制?

分支是指向提交對(duì)象的指針。切換分支即將版本加載到工作區(qū)與暫存區(qū)

1.所有文件都以git文件形式存儲(chǔ),單個(gè)文件的所有版本都具有存儲(chǔ)。

2.暫存區(qū)將   文件版本hash 與 filename 對(duì)應(yīng)

3.commit對(duì)象是一個(gè)完整的版本。

4.通過(guò)更改分支,可以實(shí)現(xiàn)版本控制。

具體實(shí)現(xiàn):git branch 提交對(duì)象哈希值 name --->在某個(gè)提交對(duì)象(版本),創(chuàng)建指針。

注:請(qǐng)按照規(guī)范使用分支,否則將造成一些干擾(這種干擾理解的意義不大)

6.Git在這個(gè)基礎(chǔ)上還有哪些功能?(都是在前面的基礎(chǔ)上進(jìn)行延伸,不再贅述)

Tag:不會(huì)動(dòng)的指針

stash:臨時(shí)存儲(chǔ)當(dāng)前狀態(tài)

reset:選擇特定版本的特定文件(或者全部)進(jìn)行重置

注:想要學(xué)習(xí)Git具體命令,請(qǐng)轉(zhuǎn)至bilibili視頻區(qū)搜索Git選擇合適的視頻進(jìn)行教學(xué)?;蛘邔W(xué)習(xí)官方推薦教材《Pro Git》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自:http://www.open-open.com/lib/view/open1414396787325.h...
    Bbooo閱讀 548評(píng)論 0 3
  • 一:Git是什么? Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。 二:SVN與Git的最主要的區(qū)別? SVN...
    JSXL閱讀 1,902評(píng)論 0 2
  • 一:Git是什么? Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。 二:SVN與Git的最主要的區(qū)別? SVN是集...
    毛子阿卡西閱讀 287評(píng)論 0 1
  • 一:Git是什么? Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。 二:SVN與Git的最主要的區(qū)別? SVN是集...
    傲慢二鍋頭閱讀 501評(píng)論 0 0
  • 四、 分支開(kāi)發(fā)工作流 現(xiàn)在你已經(jīng)學(xué)會(huì)新建和合并分支,那么你可以或者應(yīng)該用它來(lái)做些什么呢? 在本節(jié),我們會(huì)介紹一些常...
    常大鵬閱讀 2,239評(píng)論 3 24

友情鏈接更多精彩內(nèi)容