《基于gitlab源碼管理解決方案》由會員分享,可在線閱讀,更多相關《基于gitlab源碼管理解決方案(6頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、基于git、gitlab源碼管理解決方案
武漢交易通信息技術有限公司
2017年7月6日
目錄
基于git、gitlab源碼管理解決方案 1
1 宗述 3
1.1適用范圍 3
1.2術語解釋 3
1。3 gitlab簡介 3
1.4目標以及解決的問題 3
1.5應用背景 3
2 源碼管理需求和問題分析 4
2.1項目源碼權限控制 4
2。2項目源碼版本備份與安全 4
2.3項目的進度跟蹤 4
3 基于gitlab解決方案 5
3.1 gitlab項目訪問級別控制 5
3.2 gitlab項目版本庫備份 7
3。3 gitlab項目版本庫管理 8
1 宗述
2、
1。1適用范圍
本文檔適用于產(chǎn)品實施部源碼管理域
1.2術語解釋
Push: 推送
Pull:拉取
Commit:提交
Clone:克隆
1.3 gitlab簡介
gitlab是開源的源碼協(xié)作軟件。使用細粒度訪問控制管理git倉庫以達到確保你的源碼安全??蓤?zhí)行源碼檢查和提高源碼合并請求。每一個項目都有各自的問題跟蹤日志。全球超過10萬個組織在使用,gitlab是管理git倉庫的最流行的軟件之一。
1。4目標以及解決的問題
目標:
(1) 項目訪問級別設置.
(2) 項目管理和跟蹤。
(3) 用戶訪問權限設置。
解決的問題
(1) 項目備份繁瑣。
(2) 版本差
3、異對比繁瑣。
(3) 版本回退困難。
1.5應用背景
(1) 實施項目眾多.全國各地的MIS項目、POS項目眾多,需要對各個項目源碼、釋放包進行備份.采用傳統(tǒng)的FTP方式備份源碼,隨著時間的推移,源碼數(shù)量越來越龐大,從最新版本回歸到歷史版本,需要進行手工操作,并使用工具對比版本之間的差異,在這個過程中花費的時間成本較高。
(2) 項目代碼整理復雜。為了適應調(diào)用MIS接口的交易系統(tǒng)的更新迭代,需要修改MIS接口源碼,并發(fā)布釋放包。使用傳統(tǒng)的方式管理源碼,并沒有記錄源碼修改日志,無法對源碼進行版本遞歸,難以達到排查錯誤,代碼優(yōu)化的目的.
2 源碼管理需求和問題分析
2。1項目源碼權限
4、控制
項目源碼屬于公司的財產(chǎn),里面包含許多有價值的信息以及公司核心技術。如果源碼核心技術的泄露被競爭對手獲得,會對公司造成損失,降低市場產(chǎn)品的競爭力,因此必須對源碼進行有效的控制。所以用戶與當前項目是否存在關系,如果存在關系,用戶在當前項目中擔任怎樣的一種角色?項目應該對該用戶開發(fā)哪些信息,授予哪些權限等等,是項目管理者考慮的問題
2。2項目源碼版本備份與安全
采用哪種方式備份源碼,如何確保源碼安全,避免源碼的丟失十分重要。
傳統(tǒng)的備份方式會導致很多問題。復制整個項目目錄來保存不同的版本,或許還會改名加上備份時間以示區(qū)別。這么做唯一的好處就是簡單,不過壞處卻不少:有時候會混淆所在的
5、工作目錄,弄錯了文件丟了數(shù)據(jù)就沒了退路。版本丟失后續(xù)的開發(fā),只能從某個歷史版本基礎上重寫開發(fā),重復花費人力物力。如果備份服務器磁盤損壞了,這是災難性的,公司正在運營的項目會到惡劣的影響,不能修復現(xiàn)有項目的功能缺陷以后續(xù)的開發(fā)。傳統(tǒng)方式備份難以做到版本遞歸、查閱開發(fā)者提交的文件內(nèi)容變更信息、提交日期;難以做到多開發(fā)者并行開發(fā)以后代碼合并。
2.3項目的進度跟蹤
沒有使用版本控制的傳統(tǒng)進度跟蹤方式難以及時跟蹤項目進度。項目開發(fā)者的工作處于哪一個階段?一天的開發(fā)工作量是多少?代碼編寫質(zhì)量如何?使用傳統(tǒng)的方式只能詢問開發(fā)者,閱讀開發(fā)者的項目源碼,十分不方便。如何保證項目進度,控制風險,提高工作
6、質(zhì)量和效率變得十分艱難。不能隨時隨地獲知項目的進度、查看代碼的變更、不能審核代碼確保代碼的質(zhì)量。
3 基于gitlab解決方案
3.1 gitlab項目訪問級別控制
訪問級別的控制確保源碼信息開放安全.gitlab中項目有3種訪問級別。私有:必須授權特定用戶,該用戶才能訪問項目.內(nèi)部:登錄到gitlab的用戶可訪問該項目.公開:無需任何認證的人都能訪問該項目.
項目所有者可為該項目添加特定成員,并授予Guest、Report、Developer、Master角色,每一個角色對項目擁有不同的權限,Guest〈 Report< Developer
7、。下表是各個角色的權限,Owner為項目用者
行為
Guest
Report
Developer
Master
Owner
創(chuàng)建一個新問題
?
?
?
?
?
創(chuàng)建一個機密問題
?
?
?
?
?
查看機密問題
?
?
?
?
?
留言
?
?
?
?
?
查看工作列表
?
?
?
?
?
查看工作日志
?
?
?
?
?
下載和瀏覽工作構(gòu)建
?
?
?
?
?
查看wiki網(wǎng)頁
?
?
?
?
?
拉取項目代碼
?
?
?
?
下載項目
?
?
?
?
創(chuàng)
8、建代碼片段
?
?
?
?
問題跟蹤管理
?
?
?
?
標簽管理
?
?
?
?
查看提交狀態(tài)
?
?
?
?
查看容器注冊表
?
?
?
?
查看環(huán)境
?
?
?
?
創(chuàng)建一個新環(huán)境
?
?
?
使用環(huán)境終端
?
?
停止環(huán)境
?
?
?
查看合并請求列表
?
?
?
?
管理/接收合并請求
?
?
?
創(chuàng)建新的合并請求
?
?
?
創(chuàng)建分支
?
?
?
推送到不受保護的分支
?
?
9、
?
強制推送到不受保護的分支
?
?
?
移除不受保護的分支
?
?
?
添加標簽
?
?
?
Wiki寫作
?
?
?
取消和審查工作
?
?
?
創(chuàng)建或更新一個提交狀態(tài)
?
?
?
更新注冊容器
?
?
?
移除注冊容器鏡像
?
?
?
創(chuàng)建一個新的里程碑
?
?
添加一個團隊成員
?
?
推送到受保護分支
?
?
允許/禁止分支保護
?
?
重寫/移除git標簽
?
?
10、
編輯項目
?
?
添加部署密鑰到項目
?
?
配置項目鉤子
?
?
管理在線用戶
?
?
管理工作觸發(fā)器
?
?
管理變量
?
?
管理頁面
?
?
管理頁面域和證書
?
?
切換有效級別
?
轉(zhuǎn)移項目到另一個域
?
移除項目
?
強制推送到管理分支
移除受保護分支
移除頁面
?
表 3—1 角色權限表
項目的訪問控制為每個
11、用戶設置了不同的權限,哪些用戶可以了解項目,哪些用戶可以查看項目開發(fā)情況,哪些用戶可以獲取源碼并修改等等。有效地控制項目源碼信息,避免重要的技術細節(jié)透露給不需要知道的用戶。
3。2 gitlab項目版本庫備份
gitlab可保證版本庫信息不丟失. gitlab的版本庫是分布式的,每一個經(jīng)過授權的git用戶都可以從gitlab中克隆項目源碼,盡管本地網(wǎng)絡出現(xiàn)問題,git用戶都可以提交源碼、查看提交日志、對比版本變更。當網(wǎng)絡正常,可以推送到gitlab版本庫,使用遠程版本庫與本地版本庫源碼一致.當gitlab中的項目不小心刪除了,只需從本地上傳項目版本庫即可,在gitlab中仍可以查看往日的提
12、交日志等各種信息。比較于svn,當svn服務器出現(xiàn)問題,導致開發(fā)者無法提交源碼、查看源碼提交日志等等操作。當svn版本庫出現(xiàn)問題,盡管可以上傳原有項目,但會造成版本日志丟失,無法進行版本遞歸.
圖 3-1描述了版本庫工作原理。開發(fā)者從裝有gitlab 的公共服務器拉取項目版本庫,每個版本庫都有獨立的版本信息,互不影響。當需要合并代碼的時候,開發(fā)者給主開發(fā)者提發(fā)送補丁,主開發(fā)者審核代碼后合并代碼,然后提交到遠程版本庫。公網(wǎng)服務器出現(xiàn)問題,但不影響各個開發(fā)者版本庫的版本信息,仍可以進行版本控制。
圖 3-1 版本控制工作原理
3.3 gitlab項目版本庫管理
在版本庫中,可查看開發(fā)者提交的信息,包括:提交人,提交日期,瀏覽文件內(nèi)容變更。手機也可以訪問gitlab,隨時查看項目情況.也可以了解每個項目參與者的貢獻統(tǒng)計,每天、每周、每月代碼提交量 。依靠這些信息,可以掌握項目的進度,把控風險.
圖 3—2 提交信息列表
圖 3—3內(nèi)容變更對比
圖 3-4 項目參與者貢獻統(tǒng)計
圖 3-5 月度提交量
圖 3-6 每周提交量
圖 3—7 每天提交量