小組信息
所在組名:天天向上
本組組長:digman
本組其他成員:豐盛姐 慧娟 夜影隨風(fēng)
本組口號:每天成長 每天學(xué)習(xí)
01號組員:夜影隨風(fēng)
學(xué)習(xí)目標(biāo):學(xué)會用git寫作
自己擅長:家具行業(yè)
02號組員:豐盛姐
學(xué)習(xí)目標(biāo):學(xué)會用git寫作
自己擅長:心理咨詢 個人成長心理教練
03號組員:慧娟
學(xué)習(xí)目標(biāo):學(xué)習(xí)加實踐才出成果,學(xué)會用git寫作
自己擅長:教育 教育心理學(xué)
04號組員:digman
學(xué)習(xí)目標(biāo):通過極客寫作任務(wù)尉辑,搭建自己的個人知識輸出系統(tǒng)
自己擅長:企業(yè)信息化實施睛约、財務(wù)管理款咖、審計等方面的相關(guān)業(yè)務(wù)溝通窟勃。
寫在前面绢片,每個人都用自己的理解完成了作業(yè)疾忍,在進(jìn)行作業(yè)合并時非常為難端蛆,就把所有的作業(yè)內(nèi)容都列出來,顯得內(nèi)容較多忽洛,如有瀏覽不便腻惠,還請見諒。
下一次作業(yè)時嘗試共同編輯任務(wù)欲虚,嘗試小組共同創(chuàng)作的過程集灌。
小組作業(yè)
豐盛姐 1-6問題的作業(yè)
提交者:@王一一(1--6問題答案)
- 用 500 字說說 Git 的前生今世。
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)复哆,出自世界最大的免費開源操作系統(tǒng)Linux之父Linus之手欣喧,隨著Linux內(nèi)核代碼庫日益壯大,Linus 先后嘗試自己管理梯找、集中托管唆阿、商業(yè)軟件的版本控制等方法,但最終都不是很如人意锈锤,驯鳖,Linus于是選擇了商業(yè)控制版本Bitkeeper作為Linux內(nèi)核的代碼管理工具。2005年有人嘗試突破Bitkeeper的協(xié)議久免,激怒了Bitkeeper的東家浅辙,后果就是收回Linux社區(qū)的使用權(quán),Linus藐視其威脅阎姥,神跡般地在兩周之內(nèi)開發(fā)出Git记舆,后來這個系統(tǒng)由Github公司推廣到全世界,現(xiàn)在是大多數(shù)程序員托管自己代碼和開源項目的集中地呼巴。
git 的發(fā)展個人理解可劃分為三個時段:
遠(yuǎn)古的石器時代 -- 無版本控制系統(tǒng)泽腮,協(xié)作困難開化的近代 --集中式版本控制系統(tǒng) 主要有CVS和SVN成熟的現(xiàn)代 --分布式版本控制系統(tǒng) 主要有BitKeeper和Git
一御蒲、遠(yuǎn)古的石器時代
在石器時代,人們一般用相對原始诊赊,簡陋的工具來解決問題厚满,完成工作內(nèi)容。這個時代在1985年CVS出現(xiàn)之前。 人們在修改文檔和程序代碼時,通過不斷的復(fù)制些楣,冗余存儲另伍,多人協(xié)作困難,效率低下团搞。對于文本和源碼的差異比較用diff 和patch來解決严望,代表人物是大名鼎鼎的Linus Torvalds(Linux之父)
二、開化的近代
這個時代在1985年逻恐,CVS(Concurrent Versions System)由荷蘭阿姆斯特丹VU大學(xué)的Dick Grune教授實現(xiàn)像吻,引入版本控制概念解決修改文檔的復(fù)制存儲,多人協(xié)作困難的問題复隆。但由于CVS存在問題:建立里程碑或分支時缺乏效率拨匆,服務(wù)器端文件越多,速度越慢挽拂。因為缺乏對合并的追蹤從而導(dǎo)致重復(fù)合并惭每,引發(fā)嚴(yán)重沖突,等等原因亏栈。
在2000年出現(xiàn)SVN(Subversion)——集中式版本控制系統(tǒng)台腥,逐步取代CVS。SVN 有多個優(yōu)點: 從BDB(簡單的關(guān)系型數(shù)據(jù)庫)到FSFS(文件數(shù)據(jù)庫)的轉(zhuǎn)變绒北。FSFS相對于BDB具有更高的穩(wěn)定性黎侈、免維護(hù)性,以及實現(xiàn)的可視性闷游。利用輕量級拷貝峻汉,SVN在不同的名字空間下創(chuàng)建不同的目錄實現(xiàn)里程碑和分支的創(chuàng)建,輕松地解決了CVS中存在的里程碑脐往、分支創(chuàng)建速度慢又不可見的問題休吠。使用SVN創(chuàng)建里程碑和分支只在眨眼之間。
SVN 也存在的多個問題钙勃,例如:集中式版本控制系統(tǒng)蛛碌,即一個項目只有唯一的一個版本庫與之對應(yīng),所有的項目成員都通過網(wǎng)絡(luò)向該服務(wù)器進(jìn)行提交辖源。單點故障是集中式版本控制的死穴蔚携,并由此帶來數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)的管理成本希太。此外集中式版本控制系統(tǒng)還存在著提交瓶頸。
舉例說明集中式與分布式版本控制的區(qū)別是什么酝蜒?
比如說我和網(wǎng)上的幾個好哥們共同寫一本書誊辉。
集中式的版本控制就是說我們所有人的寫作內(nèi)容都存放在某一個人的電腦里面,當(dāng)我開始寫作的時候亡脑,我需要訪問存放底稿的電腦堕澄,我寫完了,要上傳修改后的底稿到這臺電腦中霉咨。別人也是一樣的蛙紫。
分布式的版本控制就是我們所有人的電腦上都存放一份這本書的內(nèi)容,在自己電腦隨時修改途戒,改完后可以和對方交換內(nèi)容坑傅,更新內(nèi)容,更新后我們?nèi)司屯瑫r有一份完整的書籍底稿喷斋。
集中式需要保持聯(lián)網(wǎng)唁毒,而且如果服務(wù)器壞掉,數(shù)據(jù)丟失風(fēng)險較大星爪;分布式可以線下獨立浆西,如果電腦當(dāng)?shù)簦梢詮膭e人那里取得完整的數(shù)據(jù)顽腾。用淺顯易懂的語言說明“工作區(qū)”近零、“暫存區(qū)”與“版本區(qū)”的含義與互相關(guān)系是什么?
工作區(qū)是文件系統(tǒng)中存在的一個目錄崔泵,這個目錄是可以看到的秒赤,比如說其中一個目錄叫做“產(chǎn)品經(jīng)理”,這個是我用來產(chǎn)品經(jīng)理所有文字憎瘸;工作區(qū)展示的產(chǎn)品經(jīng)理這本書的章節(jié)結(jié)構(gòu)(分支的展示)入篮,其中里面有個隱藏目錄.git是版本庫。
版本庫打開版本庫看到的是工作區(qū)的處理后臺幌甘,我在后臺做過編輯并commit之后潮售,更改的內(nèi)容就會展示在工作區(qū)。
暫存區(qū)是當(dāng)我打開版本庫里面的一個分支進(jìn)行修改的時候呈現(xiàn)的一種狀態(tài)锅风,我編輯產(chǎn)品經(jīng)理這本書的第一章的時候第一章就變成了暫存區(qū)酥诽。當(dāng)我保存commit的時候,暫存區(qū)的內(nèi)容就清空了皱埠。舉例演示如何讓遠(yuǎn)程庫與本地版本同步肮帐?
比如我在寫一本《喚醒內(nèi)在動力》的書籍,于是我在本地建立了一個命名為【內(nèi)在動力】的庫,這個庫是本地庫训枢。為了安全和協(xié)同托修,我把本地庫的內(nèi)容上傳了github網(wǎng)站進(jìn)行托管,github上就是我的遠(yuǎn)程庫恒界。
這個遠(yuǎn)程庫可以通過clone命令供我在其他地點或者其他協(xié)作者下載到本地進(jìn)行修改編輯睦刃。修改完的內(nèi)容還可以上傳到遠(yuǎn)程庫中。如何運用分支管理實現(xiàn)多人協(xié)作十酣?
我和幾個朋友合作寫一本書涩拙,當(dāng)我們多個人編輯同一個目錄的時候,容易亂耸采,我們通過分支的功能兴泥,每個人從中選擇一個章節(jié),先各自編輯洋幻,當(dāng)我們編輯完成之后郁轻,把某個章節(jié)的的內(nèi)容并到總目錄中,就可以拼接成一個完整的數(shù)據(jù)文留。類似于我們從一本書中挑走幾個章節(jié)分開來寫然后拼湊起來,而不是我們都編寫統(tǒng)一的全書章節(jié)竭沫。Git和自己的關(guān)系可能是什么燥翅,至少提出5種?
使用git管理自己寫作的東西:代碼蜕提、文字等
參與git中的開源項目森书,和別人共同完成某個任務(wù)
使用git來實現(xiàn)團(tuán)隊內(nèi)部的溝通和協(xié)助,任務(wù)的推進(jìn)
使用別人開源的git庫內(nèi)容方便地創(chuàng)建自己的庫
觀摩學(xué)習(xí)別人放在github上的優(yōu)質(zhì)內(nèi)容
使用git和別人進(jìn)行互動谎势,社交
在git上開發(fā)和展示自己的課程凛膏,事實在線教學(xué)
慧娟姐提交的 1、2脏榆、7問題作業(yè)
問題一:git的前世今生
Git是安裝在電腦上的一種管理文件的軟件猖毫,它是Linux操作系統(tǒng)開發(fā)的一個軟件。
在介紹Git的前世今生之前须喂,先來普及一下什么是”版本控制系統(tǒng)“吁断。這名詞聽上去非常專業(yè),實際上也好理解坞生。版本就是指一份文件經(jīng)過多次修改后仔役,構(gòu)成了不同的版本,有版本一是己,版本二又兵,版本三.....,有時面對這些經(jīng)過不同人或同一個人在不同時間修改過的不同版本的文件卒废,我們不能完全刪除沛厨,需要暫時保存以備日后需要時對比查看乘盼,通常的做法是把每一版本都保存一份在電腦里,這些都是人工操作的俄烁。而”版本控制系統(tǒng)“就是電腦里安裝好了的一個軟件绸栅,不需要人工操作,系統(tǒng)自動會保存和記錄該文件每一次改動的內(nèi)容页屠,用戶可以非常方便地隨時查看粹胯。
1991年,芬蘭人linus創(chuàng)建了類似Windows的電腦操作系統(tǒng)Linux,這套系統(tǒng)的影響力現(xiàn)在也不亞于Windows了辰企。Linux是免費的開源系統(tǒng)风纠,它的代碼系統(tǒng)是對外開放的,全世界的電腦愛好者都可以對它的代碼庫進(jìn)行修改牢贸,然后把他們編寫的代碼文件發(fā)給Linus竹观,Linus本人再手工合并代碼,所以2002年之前Linux的代碼庫都是手工管理的潜索。
2002年之前沒有”版本控制系統(tǒng)“嗎臭增?答案是否定的。當(dāng)時有CVS和SVN這些免費的版本控制系統(tǒng)竹习,但它們都有很大的缺點誊抛,速度慢,必須聯(lián)網(wǎng)才能使用整陌。有一些收費的版本控制系統(tǒng)雖然好用拗窃,但是它們的代碼系統(tǒng)不對外開放,與Linux的理念不合泌辫。
2002年由于代碼庫發(fā)展壯大随夸,人工操作已經(jīng)很難維續(xù),于是Linus選擇了一個商業(yè)的版本操作系統(tǒng)BitKeeper震放,幸運的是宾毒,Linux社區(qū)獲得了免費使用這個系統(tǒng)的權(quán)利。
不過好景不長澜搅,2005年伍俘,由于Linux社區(qū)一些技術(shù)牛人的違規(guī)行為,BitKeeper所屬的BitMover公司決定收回Linux社區(qū)的免費使用權(quán)勉躺。
與BitMover公司鬧翻之后癌瘾,Linus決定不再寄人籬下,他發(fā)奮圖強(qiáng)饵溅,僅用兩周時間就自己編寫了一個分布式版本控制系統(tǒng)妨退,Git就這樣誕生了!一個月之后,Linux的代碼庫就由Git全面接管了咬荷。Git迅速成為最流行的最高效的分布式版本控制系統(tǒng)冠句。
2008年,Github網(wǎng)站上線幸乒,吸引了無數(shù)開源項目在此落戶懦底,享受免費的Git管理。
問題二:集中式版本控制系統(tǒng)與分布式版本控制系統(tǒng)的區(qū)別
比如我們一個公司的同事一共四人:組長digman, 組員有慧娟罕扎、豐盛姐和夜影隨風(fēng)聚唐,每人各有一臺辦公電腦。現(xiàn)在我們四人需要一起合作寫一篇文章——《關(guān)于git的前世今生》腔召。
我們四人都按自己的理解各自寫好了這篇文章杆查,大家把自己的文章初稿都發(fā)到digman的電腦里,digman把大家寫的內(nèi)容綜合整理和修改后臀蛛,構(gòu)成了一篇全面詳細(xì)的介紹git來龍去脈的文章亲桦,即二稿——目前文章的最新版本,現(xiàn)在只存放在digman的電腦里浊仆。
在集中式版本控制系統(tǒng)里客峭,如果各位組員想查看并修改這最新版本的文章,只能從組長digman的電腦里調(diào)出來后查看和修改氧卧。組長的電腦相當(dāng)于中央服務(wù)器桃笙,存儲了每個人寫的初稿和最新版本二稿。所以3位組員的電腦必須與組長的的電腦聯(lián)網(wǎng)才能協(xié)同工作沙绝。
在分布式版本控制系統(tǒng)里,每位組員的電腦里都會自動保存最新版本的文章鼠锈,四臺電腦沒有主次之分闪檬,不需要聯(lián)網(wǎng),每位組員可以各自在自己的電腦里查看最新版本的文章并做相應(yīng)的處理购笆。如果慧娟又修改了最新版本二稿文章粗悯,其他三位想看哪些地方做了改動,慧娟只需把修改的部分通過系統(tǒng)發(fā)送給digman同欠、豐盛姐和夜影隨風(fēng)样傍,他們就馬上能看到修改的內(nèi)容。
**問題七:給小白看的git 的教程大綱
一铺遂、git 簡介
- 什么叫版本控制系統(tǒng)
2.集中式版本控制系統(tǒng)與分布式版本控制系統(tǒng)
- git 的誕生
二衫哥、安裝git
-
三、創(chuàng)建版本庫
- 在工作區(qū)寫文件
- 添加文件至?xí)捍鎱^(qū)
- 提交文件至分支
- 文件修改的版本回退
- 修改的管理和撤銷
-
四襟锐、連接中央服務(wù)器github網(wǎng)站
- 1.配置ssh
- 2.將個人電腦(分支)與github連接
-
五撤逢、分支管理
- 創(chuàng)建與合并分支
- 多人協(xié)作
六、使用github
夜影隨風(fēng) 提交的 1、2蚊荣、7問題作業(yè)
一初狰、用五百字介紹git的前世今生
git版本控制系統(tǒng)是由Linux之父Linus開發(fā),被譽為繼其開發(fā)Linux之后的第二個偉大作品互例。在了解git之前我們要先了解一下什么是版本控制奢入。版本控制是管理數(shù)據(jù)變更的藝術(shù)不管數(shù)據(jù)是來自同一個人還是不同的人。版本控制系統(tǒng)不但要忠實地記錄數(shù)據(jù)的每一次變更媳叨,還要能夠幫助還原任何歷史改動腥光,以及實現(xiàn)團(tuán)隊的協(xié)同工作等功能。為了實現(xiàn)此功能開發(fā)者們設(shè)計出了以CVS和SVN為代表的集中式版本控制系統(tǒng)即一個項目只有唯一的一個版本庫與之對應(yīng)肩杈,所有的項目成員都通過網(wǎng)絡(luò)向該服務(wù)器進(jìn)行提交柴我。但是這種方式造成了集中式版本控制的死穴——單點故障,并由此帶來數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)的管理成本扩然。此外集中式版本控制系統(tǒng)還存在著提交瓶頸等等各種問題艘儒。基于以上問題Linus在1991-2002這十余年間夫偶,寧可使用補(bǔ)丁文件和tar包的方式維護(hù)代碼界睁,也遲遲不愿使用CVS和SVN。2002年Linus頂著開源社區(qū)精英們的口誅筆伐兵拢,選擇了一個商業(yè)版本控制系統(tǒng)BitKeeper作為Linux內(nèi)核的代碼管理工具访惜,和CVS/SVN不同,BitKeeper是屬于分布式版本控制系統(tǒng)(分布式版本控制系統(tǒng)最大的反傳統(tǒng)之處在于腻扇,可以不需要集中式的版本庫,每個人都工作在通過克隆操作建立的本地版本庫中窒篱,也就是說每個人都擁有一個完整的版本庫。)2005年發(fā)生了一件事導(dǎo)致BitMover公司高镐,收回對Linux社區(qū)免費使用BitKeeper的授權(quán)低滩。迫不得已Linus自己L用了不到兩周的時間開發(fā)一個分布式版本控制工具。這個工具就是后來大名鼎鼎個GIT。
二迄委、舉例說明集中式與分布式版本控制系統(tǒng)的區(qū)別是什么?
集中式版本控制比如說我們共同完成一個代碼編寫任務(wù),我們把寫好的代碼放在一個服務(wù)器里财忽,當(dāng)我們要修改的時候需要從服務(wù)器里下載到自己的電腦上,修改后再上傳到服務(wù)器上。這樣我們之間要保證網(wǎng)絡(luò)暢通惠况,如果服務(wù)器壞掉那么就會面臨著數(shù)據(jù)丟失的風(fēng)險
分布式版本控制就是我們大家的電腦上都有代碼的內(nèi)容翎苫,自己不用去下載就可以在自己的電腦上隨時修改龙屉,我們可以自由的和別人合并或者是更新代碼作岖,這樣可以完全在線下完成如果電腦壞掉的話,我們還可以從別人的電腦中重新復(fù)制一份完整的數(shù)據(jù)
三渐尿、整理一份小白學(xué)習(xí)的git教程大綱
1凉夯、介紹什么是git
2、和別的版本控制系統(tǒng)的區(qū)別
3、git的核心概念和特點
4、git的使用案例
5、git的安裝及實際操作方法
digman 提交 1、2、7 問題作業(yè)
一犀农、用五百字介紹git的前世今生
本篇文字就是簡單的描述一下git的來龍去脈,以自己理解的角度宰掉,用自己的語言來描述一下。也是不錯的體驗孟害。
在cvs與svn集中式版本控制全面使用的時代,依然有很多人很反對集中式版本控制的方式谷誓,這其中包括大名鼎鼎的Linus Torvalds(Linux之父)庐镐。糟糕的網(wǎng)絡(luò)傳輸速度变逃,以及集中式版本控制的存在的代碼管理問題必逆,是大家爭論焦點。同時linux是一個開源軟件體系凰棉,經(jīng)過十幾年的發(fā)展损拢,全球擁有大量的用戶和程序員,如何讓大家更好的獲取代碼撒犀,并進(jìn)行有消息協(xié)同是一個有難度的事情福压。在經(jīng)過bitkeeper軟件事件后,linus花了兩周的時間編寫出分布式版本控制系統(tǒng)或舞,這就是初級的git隧膏!一個月內(nèi),linux系統(tǒng)的源碼都有g(shù)it管理了嚷那,這么快上線一個軟件,還在這么大的項目中進(jìn)行使用杆煞,簡直就是奇跡魏宽。隨著git的發(fā)展腐泻,它已經(jīng)成為最流行的分布版本控制系統(tǒng),大量的開源項目都將自己的代碼托管到git版本控制系統(tǒng)當(dāng)中队询。依然成為軟件行業(yè)的標(biāo)準(zhǔn)派桩,甚至有很多人拿git作為個人知識管理系統(tǒng)使用,他的魅力無法阻擋蚌斩。
二铆惑、舉例說明集中式與分布式版本控制系統(tǒng)的區(qū)別是什么?
集中式版本控制主要特點是集中存放所有資料送膳,所有人的所有變動都更新到中央服務(wù)器中员魏。同時所有相關(guān)人員想要進(jìn)行相關(guān)瀏覽和修改,都需要從中央服務(wù)器下載最新版資料才能開展工作叠聋,所以對網(wǎng)絡(luò)比較依賴撕阎。如何直接修改忘記下載最新版或者網(wǎng)絡(luò)斷掉,整個工作就會受到影響碌补。
而分布式版本控制系統(tǒng)的特點是分布式虏束,相關(guān)人員的電腦都是一個關(guān)鍵節(jié)點,每一個點都擁有所有的資料和變動記錄厦章。所以每個人都可以獨立進(jìn)行改動資料镇匀,并且所有的改動都是在完整資料信息的環(huán)境下進(jìn)行的。當(dāng)有網(wǎng)絡(luò)時在進(jìn)行提交更新袜啃,此時所有人的信息都更新到一個臨時中心服務(wù)中汗侵,供所有人更新信息。而且有詳細(xì)的變更記錄囊骤,解決了我做了什么晃择,你做了什么,你在什么地方做了怎樣的變動也物,這些溝通的信息都自動展示在你的眼前宫屠,減少了大量的溝通成本,并且能夠保證所有人的資料都是最新的滑蚯。從這一點來看浪蹂,分布式的資料安全性要比集中式高很多,而且他的靈活度也很高告材,不需要專門的管理人員來管理所有人的更新操作坤次,對于提高工作效率有很大的幫助。
打個比方來說斥赋,集中式版本控制就像是中央集權(quán)國家缰猴,所有的財富與美女都向皇帝所代表的中央集中,想要一些資源都需要單獨進(jìn)京面圣疤剑,否則干不成事滑绒。而分布式版本控制就像是藏富于民的政策闷堡,也有中央,但是調(diào)停的角色疑故,不是占有杠览。財富分散存放,國家整體抗風(fēng)險能力強(qiáng)纵势,需要中央出面踱阿,中央也能拿得出東西,需要民眾出面钦铁,人民也能拿得出東西软舌,其樂融融。
三育瓜、整理一份小白學(xué)習(xí)的git教程大綱
給小白提交一個課程大綱
1葫隙、git他能幫助我們做什么,他的優(yōu)勢是什么(分布式版本控制)
2躏仇、什么是git恋脚,什么是github
-
3、如何使用git來進(jìn)行分布式版本控制操作
- 3.1 安裝git客戶端
- 3.2 配置git客戶端焰手,與遠(yuǎn)程服務(wù)器鏈接糟描,
- 3.3 創(chuàng)建本地倉庫,并與遠(yuǎn)程倉庫建立連接(空白庫和從遠(yuǎn)程倉庫拷貝信息到本地)
4书妻、邀請伙伴一起來玩一次共同創(chuàng)作的游戲吧船响,寫一周的時間記錄 ,匯總在一起是一件很有趣的事情躲履。