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