Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Search | Email

10.3. Gitlab 項目管理

實施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

10.3.1. 創建用戶

Procedure 10.1. 企業內部使用的 Gitlab 初始化

  1. 關閉在綫用戶註冊

  2. Step 3.

    1. Substep a.

    2. Substep b.

10.3.2. 創建組與項目

Procedure 10.2. Gitlab 初始化 - 創建組

  1. 點擊 New Group 按鈕新建一個組,我習慣每個域一個組,所以我使用 netkiller.cn 作為組名稱

  2. 輸入 netkiller.cn 然後單擊 Create group

  3. 組創建完畢

創建組後接下來創建項目

Procedure 10.3. Gitlab 初始化 - 創建項目

  1. 單擊 New Project 創建項目

  2. 輸入 www.netkiller.cn 並點擊 Create project 按鈕創建項目

  3. 項目創建完畢

10.3.3. 分支管理

起初我們應對並行開發在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 分支應用 - 創建分支

  1. 首先,點擊左側 Commits 按鈕,然後點擊 Branches 按鈕進入分支管理

  2. 點擊 New branch 創建分支

    在 Branch name 中輸入分支名稱,然後點擊 Create branch 創建分支

  3. 分支已經創建

重複上面步驟,完成development分支的創建。

保護分支:鎖定分支,只允允許合併,不允許提交

Procedure 10.5. 保護分支

  1. master

    testing

  2. Step 2.

    1. Substep b.

10.3.4. 代碼審查

10.3.5. 合併

10.3.6. WebHook