geekest小組作業(1、3、6)
** 1.用 500 字說說 Git 的前生今世。**
Linus 是linux操作系統的創始人,它寫linux代碼的時候,最開始使用bitkeeper作為linux內核主要的版本控制工具,但是bitkeeper是專有軟件,和linux的開放精神相違背,所以一直在linux社區中遭到質疑,社區中主張使用開源軟件進行版本管理,然后linus發現開源的大多不好用,因此只能繼續使用bitkeeper。
最后linux社區和bitkeeper的人因為一件小事發生了不可調和的分歧,然后linus就決定自己開發版本控制系統替代bitkeeper,用了10天時間,編寫出第一個git版本(大神般人物!請接受我的膝蓋!)
git是用于Linux內核開發的版本控制工具。與CVS、Subversion一 類的集中式版本控制工具不同,它采用了分布式版本庫的作法,不需要服務器端軟件,就可以運作版本控制,使得源代碼的發布和交流極其方便。git的速度很快,這對于諸如Linux內核這樣的大項目來說自然很重要。git最為出色的是它的合并追蹤(merge tracing)能力。
實際上內核開發團隊決定開始開發和使用git來作為內核開發的版本控制系統的時候,世界上開源社區的反對聲音不少,最大的理由是git太艱澀難懂, 從git的內部工作機制來說,的確是這樣。但是隨著開發的深入,git的正常使用都由一些友善的命令稿來執行,使git變得非常好用。現在,越來越多的著 名項目采用git來管理項目開發,例如:wine、U-boot等。
作為開源自由原教旨主義項目,git沒有對版本庫的瀏覽和修改做任何的權限限制,通過其他工具也可以達到有限的權限控制,比如:gitosis、 CodeBeamerMR。原本git的使用范圍只適用于Linux/Unix平臺,但在Windows平臺下的使用也日漸成熟。
** 2.舉例說明集中式與分布式版本控制的區別是什么?**
集中式就是會有一個中心,所有消息匯總到中心進行處理分發,而分布式就是去中心化,每一個點都是處理者。集中式的優點是管理方便,但是如果遇到中心網絡故障則會造成所有從機無法與主機通信,而分布式則不存在這個問題。
** 3.用淺顯易懂的語言說明“工作區”、“暫存區”與“版本區”的含義與互相關系是什么?**
工作區是你現在正在操作的 庫,你的增生查改操作都是針對的這個庫的版本。
暫存區是你提交的本地庫,記錄你的所有更改,但是并沒有分發到網絡上,無法被別人獲取。
版本區是對外的公開版本,別人可以獲取到。
** 4.舉例演示如何讓遠程庫與本地版本同步?**
- 命令行為例:
git pull #獲取目前最新版本
git commit -a #提交本地工作區到緩存區,之后輸入更新信息
git push #提交緩存區版本
5.如何運用分支管理實現多人協作?
** 6.Git和自己的關系可能是什么,至少提出5種?**
- 寫書
- 寫文章
- 寫代碼
- 寫需求文檔
- 團隊協作
- 改變固有思維,學會接納更多
- 使共享工作成果更加便捷!
7.整理一份給小白學習的 Git 教程大綱。
2016年5月31日19:43:30