實施DEVOPS首先我們要有一個項目管理工具。
我建議使用 Gitlab,早年我傾向使用Trac,但Trac項目一直處于半死不活狀態,目前來看Trac 對於 Ticket管理強於Gitlab,但Gitlab發展的很快,我們可以看到最近的一次升級中Issue 加入了 Due date 選項。Gitlab已經有風投介入,企業化運作,良性發展,未來會超越Redmine等項目管理軟件,成為主流。所以我在工具篇採用Gitlab,BTW 我沒有使用 Redmine,我認為 Redmine 的發展方向更接近傳統項目管理思維。
軟件項目管管理,我需要那些功能,Ticket/Issue管理、里程碑管理、內容管理Wiki、版本管理、合併分支、代碼審查等等
關於Gitlib的安裝配置請參考 http://www.netkiller.cn/project/project/gitlab/index.html
Procedure 10.2. Gitlab 初始化 - 創建組
點擊 New Group 按鈕新建一個組,我習慣每個域一個組,所以我使用 netkiller.cn 作為組名稱
![]() |
輸入 netkiller.cn 然後單擊 Create group
![]() |
組創建完畢
![]() |
創建組後接下來創建項目
起初我們應對並行開發在Subversion上創建分支,每個任務一個分支,每個Bug一個分支,完成任務或修復bug後合併到開發分支(development)內部測試,然後再進入測試分支(testing)提交給測試組,測試組完成測試,最後進入主幹(trunk)。對於Subverion來說每一個分支都是一份拷貝,SVN版本庫膨脹的非常快。
Git 解決了Svn 先天不足的分支管理功能,分支在GIT類似快照,同時GIT還提供了 pull request 功能。
我們怎樣使用git 的分支功能呢? 首先我們不再為每個任務創建一個分支,將任務分支放在用戶自己的倉庫下面,通過 pull request 合併,同時合併過程順便code review。
master:是主幹,只有開發部主管/經理級別擁有權限,只能合併來自testing的代碼
testing: 測試分支,測試部擁有權限,此分支不能修改,只能從開發分支合併代碼。
development:開發組的分支,Team擁有修改權限,可以合併,可以接受pull request, 可以提交代碼
tag 是 Release 本版,開發部主管/經理擁有權限
分支的權限管理:
master: 保護
testing:保護
development:保護
Procedure 10.4. Gitlab 分支應用 - 創建分支
首先,點擊左側 Commits 按鈕,然後點擊 Branches 按鈕進入分支管理
![]() |
點擊 New branch 創建分支
![]() |
在 Branch name 中輸入分支名稱,然後點擊 Create branch 創建分支
分支已經創建
![]() |
重複上面步驟,完成development分支的創建。
保護分支:鎖定分支,只允允許合併,不允許提交