軟件技術基礎作業1
我想先談一談自己對軟件工程基礎這門課的期待:
首先,當初選擇這門課的時候並沒有去了解這門課的所授內容,純粹是因為專業選修課裏另一門C++的任課老師講課讓我感到平靜祥和,催人入眠。因此在見到楊磊老師帶來的第一節試課之後我更祈禱他能在今後的課程裏不要計較23.5夠不夠油費,使盡全身解數來讓課堂生動有趣,讓知識變得立體易懂。其次,聽楊老師所說,除了軟件基礎,軟件工程意識也是區別碼農和新時代精英的重要意識,什麽叫做軟件工程以及如何培養這種意識?我希望也能在課上有深刻體會。另外,我希望得到更多指導,作為一個軟件開發團隊,從了解用戶需求,開發程序,調試和維護的一系列工作具體的做法。
關於git,我通過搜索得到了以下資料。
Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
Torvalds 開始著手開發 Git 是為了作為一種過渡方案來替代 BitKeeper,後者之前一直是 Linux 內核開發人員在全球使用的主要源代碼工具。開放源碼社區中的有些人覺得 BitKeeper 的許可證並不適合開放源碼社區的工作,因此 Torvalds 決定著手研究許可證更為靈活的版本控制系統。盡管最初 Git 的開發是為了輔助 Linux 內核開發的過程,但是我們已經發現在很多其他自由軟件項目中也使用了 Git。例如 最近就遷移到 Git 上來了,很多 Freedesktop
分布式和集中式的最大區別在於開發者可以本地提交。每個開發者機器上都有一個服務器的數據庫。
Git的功能特性:
從一般開發者的角度來看,git有以下功能:
1:從服務器上克隆數據庫(包括代碼和版本信息)到單機上。
2:在自己的機器上創建分支,修改代碼。
3:在單機上自己創建的分支上提交代碼。
4:在單機上合並分支。
5:新建一個分支,把服務器上最新版的代碼fetch下來,然後跟自己的主分支合並。
6:生成補丁(patch),把補丁發送給主開發者。
7:看主開發者的反饋,如果主開發者發現兩個一般開發者之間有沖突(他們之間可以合作解決的沖突),就會要求他們先解決沖突,然後再由其中一個人提交。如果主開發者可以自己解決,或者沒有沖突,就通過。
8:一般開發者之間解決沖突的方法,開發者之間可以使用pull 命令解決沖突,解決完沖突之後再向主開發者提交補丁。
而從從主開發者的角度(假設主開發者不用開發代碼)看,git有以下功能
1:查看郵件或者通過其它方式查看一般開發者的提交狀態。
2:打上補丁,解決沖突(可以自己解決,也可以要求開發者之間解決以後再重新提交,如果是開源項目,還要決定哪些補丁有用,哪些不用)。
3:向公共服務器提交結果,然後通知所有開發人員。
優點:
適合分布式開發,強調個體。
公共服務器壓力和數據量都不會太大。
速度快、靈活。
任意兩個開發者之間可以很容易的解決沖突。
離線工作。
缺點:
資料少(起碼中文資料很少)。
學習周期相對而言比較長。
不符合常規思維。
代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息。
折疊
軟件技術基礎作業1