題記:前段時(shí)間有關(guān)注Git版本控制的相關(guān)內(nèi)容,準(zhǔn)備自己搭建一個(gè)網(wǎng)站,順手記了一些git學(xué)習(xí)的筆記,今天發(fā)出來,一起學(xué)習(xí)下。

1. 500 字說說 Git 的前生今世。
Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng)。神一樣的人物L(fēng)inus創(chuàng)造了Linux這個(gè)世界最大的開源操作系統(tǒng),但是這個(gè)系統(tǒng)的內(nèi)核代碼非常多,需要一個(gè)地方集中托管,Linus 先后嘗試自己管理、集中托管、商業(yè)軟件的版本控制等方法,但最終都不是很如人意,于是這個(gè)牛逼的大神,自己寫了一個(gè)關(guān)于代碼托管的版本控制系統(tǒng)Git,后來這個(gè)系統(tǒng)由Github公司推廣到全世界,現(xiàn)在是大多數(shù)程序員托管自己代碼和開源項(xiàng)目的集中地。
2. 舉例說明集中式與分布式版本控制的區(qū)別是什么?
比如說我和網(wǎng)上的幾個(gè)好哥們共同寫一本書。
集中式的版本控制就是說我們所有人的寫作內(nèi)容都存放在某一個(gè)人的電腦里面,當(dāng)我開始寫作的時(shí)候,我需要訪問存放底稿的電腦,我寫完了,要上傳修改后的底稿到這臺(tái)電腦中。別人也是一樣的。
分布式的版本控制就是我們所有人的電腦上都存放一份這本書的內(nèi)容,在自己電腦隨時(shí)修改,改完后可以和對(duì)方交換內(nèi)容,更新內(nèi)容,更新后我們?nèi)司屯瑫r(shí)有一份完整的書籍底稿。
集中式需要保持聯(lián)網(wǎng),而且如果服務(wù)器壞掉,數(shù)據(jù)丟失風(fēng)險(xiǎn)較大;
分布式可以線下獨(dú)立,如果電腦當(dāng)?shù)?,可以從別人那里取得完整的數(shù)據(jù)。
3. 用淺顯易懂的語(yǔ)言說明“工作區(qū)”、“暫存區(qū)”與“版本區(qū)”的含義與互相關(guān)系是什么?
- 工作區(qū)是文件系統(tǒng)中存在的一個(gè)目錄,這個(gè)目錄是可以看到的,比如說其中一個(gè)目錄叫做“產(chǎn)品經(jīng)理”,這個(gè)是我用來產(chǎn)品經(jīng)理所有文字;工作區(qū)展示的產(chǎn)品經(jīng)理這本書的章節(jié)結(jié)構(gòu)(分支的展示),其中里面有個(gè)隱藏目錄.git是版本庫(kù)。
- 版本庫(kù)打開版本庫(kù)看到的是工作區(qū)的處理后臺(tái),我在后臺(tái)做過編輯并commit之后,更改的內(nèi)容就會(huì)展示在工作區(qū)。
- 暫存區(qū)是當(dāng)我打開版本庫(kù)里面的一個(gè)分支進(jìn)行修改的時(shí)候呈現(xiàn)的一種狀態(tài),我編輯產(chǎn)品經(jīng)理這本書的第一章的時(shí)候第一章就變成了暫存區(qū)。當(dāng)我保存commit的時(shí)候,暫存區(qū)的內(nèi)容就清空了。
4. 舉例演示如何讓遠(yuǎn)程庫(kù)與本地版本同步?
我為了寫一本關(guān)于產(chǎn)品經(jīng)理的書籍,于是我在本地建立了一個(gè)命名為產(chǎn)品經(jīng)理的庫(kù),這個(gè)庫(kù)是本地庫(kù)。為了安全和協(xié)同,我把本地庫(kù)的內(nèi)容上傳了github網(wǎng)站進(jìn)行托管,github上就是我的遠(yuǎn)程庫(kù)。
這個(gè)遠(yuǎn)程庫(kù)可以通過clone命令供我在其他地點(diǎn)或者其他協(xié)作者下載到本地進(jìn)行修改編輯。修改完的內(nèi)容還可以上傳到遠(yuǎn)程庫(kù)中。
5. 如何運(yùn)用分支管理實(shí)現(xiàn)多人協(xié)作?
我和幾個(gè)朋友合作寫一本書,當(dāng)我們多個(gè)人編輯同一個(gè)目錄的時(shí)候,容易亂,我們通過分支的功能,每個(gè)人從中選擇一個(gè)章節(jié),先各自編輯,當(dāng)我們編輯完成之后,把某個(gè)章節(jié)的的內(nèi)容并到總目錄中,就可以拼接成一個(gè)完整的數(shù)據(jù)。類似于我們從一本書中挑走幾個(gè)章節(jié)分開來寫然后拼湊起來,而不是我們都編寫統(tǒng)一的全書章節(jié)。
6. Git和自己的關(guān)系可能是什么,至少提出5種?
- 使用git管理自己寫作的東西:代碼、文字等
- 參與git中的開源項(xiàng)目,和別人共同完成某個(gè)任務(wù)
- 使用git來實(shí)現(xiàn)團(tuán)隊(duì)內(nèi)部的溝通和協(xié)助,任務(wù)的推進(jìn)
- 使用別人開源的git庫(kù)內(nèi)容方便地創(chuàng)建自己的庫(kù)
- 觀摩學(xué)習(xí)別人放在github上的優(yōu)質(zhì)內(nèi)容
- 使用git和別人進(jìn)行互動(dòng),社交
- 在git上開發(fā)和展示自己的課程,事實(shí)在線教學(xué)
7. 整理一份給小白學(xué)習(xí)的 Git 教程大綱。
- git的介紹
- git的作用
- git的核心概念
- git的使用案例
后記:本篇文章主要參考廖雪峰-Git教程,如果大家感興趣可以進(jìn)一步深入思考。