git操作之版本控制
文章目錄
- 1. 文檔的修改保存
- 2. 如何用一個(gè)線性結(jié)構(gòu)去描述一個(gè)樹形結(jié)構(gòu)的變化
- 3. 版本控制
1. 文檔的修改保存
在開始做git筆記之前。我想先想想它是怎么出現(xiàn)的。
在我寫文檔的時(shí)候,常常會(huì)有這樣的一種情況:
有一天,關(guān)于我的文檔的第三段,我突然有一個(gè)想法,但是我又不想把原來的東西完全否決。所以呢,我在保存文件的的時(shí)候,點(diǎn)擊另存為,并且命名為:我的文檔-修改第三段的想法。此時(shí)我的文件夾里面就是這樣子的:
后來我有分別在第四段,第五段的上的基礎(chǔ)上進(jìn)行修改,此時(shí)我的文件夾就會(huì)變成這樣。
這是在原來同一文件的不同地方進(jìn)行修改,目前這種方法還能應(yīng)付。
有一天,我突然想在原來的文檔的第三段上進(jìn)行修改。為了不重名,我將文檔另存為這樣
此時(shí),對于在原來的文件上的相同地方進(jìn)行不同的修改的情況,這樣方法已經(jīng)出現(xiàn)一點(diǎn)問題了,但是還是能勉勉強(qiáng)強(qiáng)能用。但是他們都有一個(gè)共同點(diǎn)–在我的文檔上修改的。即這個(gè)樣子的:
存在的問題:修改第三段和修改第三段01存在一定的歧義,以后可能不知道改了哪里。為了解決這個(gè)問題,可以做如下修改
這樣的話,存在的歧義就會(huì)變少了。如果修改過多的話,
已經(jīng)開始感覺文件很亂了。
前面的情況還只是針對在同一個(gè)原始文件上進(jìn)行修改。在真實(shí)場景下,絕對不可能每次都在原始文件上進(jìn)行修改。還有可能在修改了的情況下修改。比如我現(xiàn)在要在我的文檔-修改了第三段文件上進(jìn)行上述修改。
如果我在我的文檔-修改了第三段上進(jìn)行原來我在我的文檔上的修改,那么我的文檔的混亂程度可想而知(更別提我又多個(gè)文件)。其實(shí),想到這里,問題已經(jīng)顯現(xiàn)出來了:
結(jié)合我在每個(gè)文件截圖下面的思維導(dǎo)圖,可以發(fā)現(xiàn)我一直在用一個(gè)線性表去描述一個(gè)樹形結(jié)構(gòu)的變化。
2. 如何用一個(gè)線性結(jié)構(gòu)去描述一個(gè)樹形結(jié)構(gòu)的變化
首先,很抱歉起了這樣的一個(gè)讓人誤會(huì)的標(biāo)題,一個(gè)線性結(jié)構(gòu)是無法去描述一個(gè)樹形結(jié)構(gòu)的(至少從目前我的知識(shí)水平來認(rèn)為),否則,樹這種數(shù)據(jù)結(jié)構(gòu)就不會(huì)出現(xiàn)了。但是我為什么要取這樣一個(gè)標(biāo)題呢?請接著往下看。
還是上面的那個(gè)問題。其實(shí)還有一種解決辦法,前面我們是從文件的角度看待這個(gè)問題,他是一種樹形變換。但是如果我們從時(shí)間的角度看待這個(gè)問題,那么它就是一個(gè)線性變換的了。就像下面這個(gè)樣子(請忽略后面的修改日期):
此時(shí),我們的文檔變換就是一種線性的了。但是,這樣的話,我們就會(huì)損失很多信息。比如文檔的變換信息。也許有人會(huì)說,我在日期后面再加上一段信息不就行了。就像這個(gè)樣子:
這樣做的話,確實(shí)可以攜帶一部分信息,但是又會(huì)陷入原來的問題,無法描述樹形變換。當(dāng)然,這樣做的好處是,在原來線性結(jié)構(gòu)的基礎(chǔ)上加了一個(gè)信息(時(shí)間字段),它可以讓我們從時(shí)間的角度來看待文檔的版本變換。
3. 版本控制
對于前面的問題,我們抽象成如下格式:
那么,版本控制要做的就是對這樣一個(gè)個(gè)的版本塊進(jìn)行控制。
總結(jié)
以上是生活随笔為你收集整理的git操作之版本控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用tensorflow实现yolov3
- 下一篇: 01_HTTP协议