999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于git工具的多分支并行開發上線流程

2019-06-20 10:31:23田江濤
電子技術與軟件工程 2019年5期
關鍵詞:功能

田江濤

摘要??? 在軟件開發過程中,經常使用并行開發的方式,即將同一個項目分配給不同的人來完成,每個人負責其中的一個模塊,等所有人都完成后,再進行整合。最后整合面臨的問題是需要選出一個人來進行專門整合,此時的工作量會非常的龐大。本文介紹了git,svn等scm軟件的區別,并結合實際場景,介紹了使用git工具,在一個簡單的gitflow下,并行開發的場景。希望能夠幫助其它開發人員使用git工具來進行類似的工作。

【關鍵詞】軟件開發 git

1 git及其它工具介紹

git是版本管理工具的一種,它是分布式的,每一個git repo都是包含了完整的信息和數據,開發者完全可以在本地進行開發,無需網絡連接。git工具的最大特點是多分支,可以支持多分支開發,這為多分支并行開發提供了基礎。

相比git,SVN是集中式版本控制系統,所有代碼集中存放在中央服務器中,SVN最大的缺點是必須聯網才能工作,而且會受網絡速度的限制。另外集中式版本控制系統依賴于中央服務器,假如服務器宕機了,任何人都無法提交代碼。并且SVN的分支相對git要弱得多。

其它類似的SCM比如,Mercurial和Bazaar還有微軟的VCS,但是使用最多最廣,功能最為強大的還是git。

git的分支:

master:主分支,當前分支上的代碼隨時可以直接發布,并且只能通過Pull Request從其他分支進行合并,而不能直接push修改。當開發告一段落,產生了新的可供發布的代碼時,master分支通過Pull Request更新了代碼。

develop:開發分支,保存當前最新開發成果的分支,即當一個新功能開發完畢需要先合并到develop分支,這個分支的代碼會進行每日的代碼持續集成。所有的開發任務都是從這個分支Checkout新的特性分支進行開發。

feature:特性分支,當開發新的功能時,從develop分支Checkout新的feature分支,這個分支的代碼最終要合并回develop分支或者廢棄掉。feature分支通常以功能為單位。

2 git,gitlab和gitflow

git的功能是非常強大的,但是使用它有一定的難度,尤其是要分清git,gitlab,gitflow的區別。

git如前所述,就是一個基礎工具,如果在linux如紅帽或者是centos下,yum install git就能安裝這個工具,但是這個工具只具有基礎的功能,是基于命令行的,用戶管理等待其它功能基本沒有,只使用這個linux下的git來進行開發管理還是有以難度的。

所以有了gitlab,這個是基于git的web管理工具,使用它有友好的界面和完備的管理各種管理功能,甚至還集成了CI/CD功能,使用gitlab來管理開發工作會非常方便,最難得是它支持在內網部署,這就為廣大開發者提供了一個強大的工具。類似的軟件還有gogs。

而gitflow不同于前兩者,它是開發的流程和約定。

3 基于git工具建立并行開發上線流程

3.1 靈活的gitflow

我們的項目包含大約2000個獨立的小文件,對于這個項目的管理,我們使用如下的gitflow:

(1)設置開發,測試和維護角色,并行工作,互不干涉。倉庫設置develop和master分支,并禁止直接推送。

(2)每一個開發人員使用一個開發分支,分支名字不能重復,開發完畢后上傳遠程倉庫。

(3)測試人員測試腳本通過后,將開發分支合并到develop并刪除此分支。

(4)維護人員定期合并develop和master分支,并將項目同步到服務器。

上述的gitflow提供了并行開發的管理流程,并且能最大可能的避免沖突的產生,這樣的并行開發上線效率將大大的優于串行開發的效率。

3.2開發過程

將項目托管到gogs服務器上,將它作為遠程倉庫,并建立兩個分支:master分支(穩定生產版),develop分支(測試完成版),然后開發人員根據不同的任務,建立本地分支,在該分支上進行開發,工作完成后將代碼push到develop分支上,假如有沖突,則要先解決沖突,而后再次將代碼push到develop分支上。具體流程如下:

(1)首先在電腦上安裝TortoiseGit:可以從Git官網直接下載安裝程序,然后按默認選項安裝即可。

(2)將代碼下載到本地,如果本地已經有代碼則直接進入下一步:

Git clone http://133.96.72.138:30000/tianjiangtao/2017GS.git

(3)在本地進行常規開發,可使用vscode進行開發,增加、修改、刪除文件等等操作。

更改目錄:cd 2017GS;

切換分支到develop(開發分支):git checkout develop;

查看分支:git branch-a;

創建自己的dev分支(dev名稱可以任意取):git branch dev;

切換到dev分支:git checkout dev;添加修改:git add *;

(4)在本地開發工作告一段落,需要把本地代碼推送(Push)到遠程分支上,提交變更及增加新的分支,服務端如果無分支,就在遠端創建:git push--set-upstream origin dev。

提交后會與遠程庫進行一次同步,最終清理掉版本庫中的dev分支,但本地工作區中的dev分支并不會刪除:git remote prune origin。

(5)如果其他人已經向dev分支推送了他的提交,而你也對同樣的文件作了修改,在推送的時候會提示推送失敗,因為他的最新提交和你試圖推送的提交有沖突。解決辦法很簡單:先用git pull把最新的提交從dev拖下來,然后,在本地合并解決沖突,再推送到遠程倉庫。

4 結語

綜上所述,基于git的并行開發上線流程,可以實現團隊內的有效合作,提高工作效率,避免資源浪費。版本庫本地化,支持離線提交,相對獨立不影響協同開發。每個開發者都擁有自己的版本控制庫,在自己的版本庫上可以任意的執行提交代碼、創建分支等行為。更少的“倉庫污染”。git對于每個工程只會產生一個 .git目錄,這個工程所有的版本控制信息都在這個目錄中。

猜你喜歡
功能
拆解復雜功能
鐘表(2023年5期)2023-10-27 04:20:44
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基層弄虛作假的“新功能取向”
當代陜西(2021年21期)2022-01-19 02:00:26
深刻理解功能關系
鉗把功能創新實踐應用
關于非首都功能疏解的幾點思考
基于PMC窗口功能實現設備同步刷刀功能
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 欧美综合成人| 欧美日韩第三页| 国产第四页| 国产91在线免费视频| 免费一级无码在线网站 | 久久黄色影院| 色综合五月| 久久亚洲国产一区二区| 日韩av无码精品专区| 欧美不卡视频在线| 久久青草热| 国产精品亚洲αv天堂无码| 国产日韩久久久久无码精品| av大片在线无码免费| 国产男人的天堂| 五月综合色婷婷| 99ri国产在线| a色毛片免费视频| 亚洲一区精品视频在线| 天天躁夜夜躁狠狠躁躁88| 91尤物国产尤物福利在线| 自慰网址在线观看| 性色一区| 亚洲Va中文字幕久久一区 | 欧美精品亚洲二区| 亚洲天堂久久新| 日本一区高清| 国产欧美视频在线观看| 91综合色区亚洲熟妇p| 日韩欧美中文字幕在线精品| 久久久噜噜噜| 欧美日韩资源| 综合色区亚洲熟妇在线| 手机在线看片不卡中文字幕| 一本视频精品中文字幕| 亚洲av无码成人专区| 久久福利网| 亚洲国产日韩在线成人蜜芽| 99免费在线观看视频| 毛片网站在线看| 91精品视频播放| 久久这里只有精品国产99| 日本不卡在线| 亚洲AV无码不卡无码| 国产一区亚洲一区| 1024国产在线| 狠狠色噜噜狠狠狠狠色综合久| 久久77777| 久久香蕉国产线| 国产超薄肉色丝袜网站| 国产成人免费手机在线观看视频| 国产成人精品一区二区| 91久久天天躁狠狠躁夜夜| 亚洲中文字幕日产无码2021| 国产在线八区| 77777亚洲午夜久久多人| 狠狠亚洲五月天| 亚洲日韩精品综合在线一区二区| 人妻中文久热无码丝袜| 91区国产福利在线观看午夜| 国产亚洲高清在线精品99| 丰满人妻中出白浆| 伊人久综合| 国产一区二区三区夜色| 国产精品尤物在线| 秘书高跟黑色丝袜国产91在线| 日本国产精品| vvvv98国产成人综合青青| 国产精品国产三级国产专业不| 一级毛片免费高清视频| 久草热视频在线| 丝袜高跟美脚国产1区| 午夜少妇精品视频小电影| 美女一区二区在线观看| 亚洲欧美成aⅴ人在线观看| 九色在线视频导航91| 亚洲人成网站观看在线观看| 在线视频亚洲欧美| 国产成人8x视频一区二区| 国产精品部在线观看| jizz国产在线| 亚洲精品午夜无码电影网|