數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)
-
先來(lái)了解下版本管理中的兩個(gè)概念,如下圖所示:
image.png
? ?倉(cāng)庫(kù),可以理解為你的項(xiàng)目工程,即文件項(xiàng)目的單位。分為本地倉(cāng)庫(kù)、遠(yuǎn)程倉(cāng)庫(kù)和線(xiàn)上倉(cāng)庫(kù),其中本地倉(cāng)庫(kù)就是你本地電腦上的項(xiàng)目文件,遠(yuǎn)程倉(cāng)庫(kù)一般為github、Centos等云端托管平臺(tái),也可以是一臺(tái)服務(wù)器,線(xiàn)上倉(cāng)庫(kù)就是實(shí)際服務(wù)器運(yùn)行的項(xiàng)目。一般來(lái)說(shuō),為了安全起見(jiàn),遠(yuǎn)程倉(cāng)庫(kù)和線(xiàn)上倉(cāng)庫(kù)應(yīng)該是不同的服務(wù)器。
? ?分支,可以理解為你項(xiàng)目?jī)?nèi)部的moudle,即文件的模塊。如張三模塊分支、李四模塊分支。 -
版本控制的數(shù)據(jù)流
? ? 在我們的實(shí)際項(xiàng)目中、利用git分布式版本管理器來(lái)管理我們的項(xiàng)目,其數(shù)據(jù)流向如下圖所示:
image.png
? ?如圖,整體流向分為三大塊:1為線(xiàn)上倉(cāng)庫(kù)、2為遠(yuǎn)程倉(cāng)庫(kù)、3為本地倉(cāng)庫(kù)。其中從下到上的數(shù)據(jù)保存流程為:工作區(qū)分為兩個(gè)分支:master和zhibinm,當(dāng)本地的工作區(qū)對(duì)該這兩個(gè)分支進(jìn)行改變時(shí),需要一個(gè)保存操作,即C和D,叫做commit操作,然后這兩個(gè)分支可以進(jìn)行合并操作,B即為merge操作;當(dāng)本地倉(cāng)庫(kù)需要提交保存的文件時(shí),這時(shí)候需要push到遠(yuǎn)程倉(cāng)庫(kù),當(dāng)然遠(yuǎn)程倉(cāng)庫(kù)也可以通過(guò)pull操作到本地倉(cāng)庫(kù),遠(yuǎn)程倉(cāng)庫(kù)各分支之間也可以進(jìn)行merge合并操作;最后是遠(yuǎn)程倉(cāng)庫(kù)部署到線(xiàn)上倉(cāng)庫(kù)進(jìn)行使用。
文件傳輸中的公鑰和私鑰
- git傳輸協(xié)議
? ?分為https(加密超文本傳輸協(xié)議)和ssl(安全外殼協(xié)議),ssl涉及到公鑰和私鑰。首先我們了解兩種加密算法。 -
對(duì)稱(chēng)加密算法
image.png
? ?其特點(diǎn)是加密密鑰和解密密鑰一樣的。
- 非對(duì)稱(chēng)加密算法

? ?其特點(diǎn)是,加密的密鑰和解密的密鑰不一樣。加密的稱(chēng)為公鑰,解密的稱(chēng)為私鑰。
- 公鑰和私鑰的生成
? ?打開(kāi)cmd,輸入指令代碼:ssh-keygen -t rsa -C "your email"或者ssh-keygen -t rsa,并按回車(chē)3下(為什么按三下,是因?yàn)橛刑崾灸闶欠裥枰O(shè)置密碼,如果設(shè)置了每次使用Git都會(huì)用到密碼,一般都是直接不寫(xiě)為空,直接回車(chē)就好了)。會(huì)在一個(gè)文件夾里面生成一個(gè)私鑰 id_rsa和一個(gè)公鑰id_rsa.pub。這里說(shuō)明一下公鑰和私鑰是成對(duì)出現(xiàn)的。 - 從遠(yuǎn)程倉(cāng)庫(kù)中獲取工程項(xiàng)目(以GitHub為例)
? ?這里我們用git的一個(gè)客戶(hù)端SourceTree來(lái)獲取項(xiàng)目,其中SourceTree個(gè)版本的下載點(diǎn)擊這里,選擇好版本下載安裝就好啦!上傳項(xiàng)目見(jiàn)這篇博文。
-
根據(jù)https得到項(xiàng)目
步驟如下:
image.png

- 根據(jù)ssl得到項(xiàng)目
? ?首先做相關(guān)設(shè)置,主要是配置公鑰(SourceTree本地的git私鑰要配好):
image.png
? ?然后直接復(fù)制ssl的url進(jìn)行pull即可。
image.png
最后附上相關(guān)視頻講解





