Git和Github簡介
Git是由 Linux 之父 Linus Tovalds 創立的程式碼版本控制系統。你可以簡單地把Git理解為管理程式碼歷史記錄的工具。比如,以前我管理需要反覆修改的文件時,一般都是手動以日期加版本號來備份文件,有了git以後,我只需要一份文件,隨時檢視更改的內容,如果寫錯了,可以隨時回退到之前的任意版本,即使刪除了,也可以恢復。
而Github是基於Git的專案託管平臺。Github現在已經是全球最大的社交程式設計及程式碼託管平臺,經常被人調侃成全球最大的同性交友網站,簡稱Gayhub。
下面是知乎上關於Github介面的一張經典圖片:
基於Github,你可以做很多事情,比如寫書、搭建部落格、多人協作翻譯、專案管理,政府檔案管理(日本政府已經把憲法放上去了,英國政府也在上面提供了很多政府專案的原始碼或者設計原則之類的東西。)、科研專案和資料管理等等。
基於Github的敏捷開發
發現這個技巧是在翻Angular倉庫的時候發現的,熟悉基於JIRA的Scrum敏捷開發的人應該對下面幾張截圖比較熟悉:
參考Angular團隊,就可以利用Github進行個人專案的敏捷開發或者學習。
關於敏捷開發:
一般敏捷開發以兩週為一個週期,稱為一個迭代。在一個迭代中快速完成預估的工作量。我們團隊的Scrum敏捷開發的步驟如下:
1.需求澄清會:搞清楚使用者需求。
2.迭代會:提煉出核心需求,把每個工作分解,並估算完成點數(人數×天數),開完會後錄入Jira中管理。
3.站會:每天早上開一個短會,每個人講一下昨天做了什麼、今天要做什麼、遇到了什麼困難。根據站會的內容,同步Jira中對應任務的進度。
4.回顧會:讓領導對這個迭代內做的產品進行評估,提出問題,同時每個人說一下這個迭代收穫或者需要改進的地方
一個簡單的案例
比如我現在Github上有一個叫Professional-JavaScript-Demo的倉庫,這是我用來學習《JavaScript高階程式設計》的,這本書有25章節,共730頁。假設現在我把每一章算作是一個迭代(也就是兩週)任務,這個任務又分成讀完整章和整理整章的知識點兩部分。基於這個前提,下面我們就利用Github進行敏捷學習。
首先,在Projects
標籤頁中建立一個專案:
建立完後就可以看到這個介面:
此時點選Add column
,建立三個列:準備,進行中和完成:
建立完了以後如下圖所示,是不是感覺有點像jira了,哈哈哈。
接下來就是要建立卡片任務了,點選準備
一列中右上角的+
號,建立卡片任務,建立完了,點選卡片右上角的下拉符號,選擇convert to issue
,建立關聯的issue
。
這時候在issue
標籤頁中就能看到關聯的issue
了,如下圖所示。按照同樣的步驟,建立一個叫第六章知識點整理
的卡片。
在上圖滑鼠的上方有個Milestones
按鈕,沒錯,這相當於Jira裡面的里程碑,在里程碑中,我們把第六章知識點整理
和讀完第六章
作為一個里程碑,表示整個第六章完成了。
首先點選建立里程碑:
然後在這邊可以選擇里程碑結束日期,比如我選16號:
建立完如圖所示:
然後我們需要把兩個issue和這個里程碑關聯起來,點選進入之前建立的issue,在右邊欄中關聯里程碑:
這時候類似於Jira的敏捷開發的管理工具就建立完成了。
假設我已經讀完第六章了,也就是完成了卡片任務中的一個,這時候你可以在projects
中把讀完第六章
的卡片拖到完成:
然後在issue
中,點選下方白色的close issue
按鈕,把讀完第六章
這個issue關閉:
這時候你的里程碑會自動同步進度:
以上就是基於Github的敏捷開發流程的一個簡單例子。