華為軟件開發(fā)云配置管理?服務(wù)和Github是國內(nèi)外比較有代表性的代碼托管平臺,它們以git作為版本管理工具运翼,使項目中身處各地的人員可以協(xié)同工作返干,主要操作涉及倉庫、分支血淌、提交矩欠、pull request等知識。本文將講述它們的操作和區(qū)別。
Github介紹
一.注冊
填寫個人資料晚顷,郵箱激活峰伙。
二.倉庫
1.倉庫類型
私有倉庫:每月繳納7美元,后期可以隨時調(diào)整成其它免費的公共倉该默。
公有倉庫:免費瞳氓,所有人可見。
2.新建倉庫
一個倉庫通常用于單個工程栓袖,倉庫可以包含文件夾匣摘,文件,圖片裹刮,視頻音榜,表格等任何項目所需資料。Github在新建項目時可以選擇同時創(chuàng)建README文件或license文件捧弃。
(1)在網(wǎng)頁的右上角赠叼,點擊頭像旁邊的加號,選擇“New repository”违霞。
(2)給倉庫命名為“hello word”
(3)可以寫一個簡短的項目描述
(4)選擇“Initialize this repository with a README”
(5)點擊“Create repository”
優(yōu)點:
a)創(chuàng)建時可以選擇gitignore類型嘴办,因為在工程編譯過程中,會生成一些中間文件买鸽,或者項目中的一些文件是不需要進行版本管理的涧郊,這些文件對Github來講是透明的,若gitignore選擇了C項目眼五,.lib .so .exe等都被忽略了妆艘。
b)Settings中可以對倉庫重新命名
三.分支
分支是在同一倉庫不同版本上工作的方法。倉庫默認有一個master分支看幼,一般用作生產(chǎn)環(huán)境批旺。當(dāng)從master分支新建一個分支,意味著在這個時間點對master分支做了一個拷貝或者說快照桌吃,其他人對master分支做的改動不會影響到新分支朱沃。
在Github上,開發(fā)者茅诱,設(shè)計者使用多個分支去修正bug和需求開發(fā)逗物,驗證OK后,最后合并到master生產(chǎn)分支瑟俭。
1.新建分支
(1)進入倉庫
(2)單擊文件列表頂部的下拉框“branch: master”
(3)在文本框中敲入新分支名字feature
(4)選擇“Create branch”或者直接回車
2.在線編輯
每個提交都有關(guān)聯(lián)的提交信息翎卓,用來解釋為什么要做這樣一個修改。提交信息記錄的這些歷史摆寄,可以使其他開發(fā)人員了解這次提交做了什么和為什么要這樣做失暴。
(1)點擊README.md文件坯门。
(2)點擊要編輯文件右上角的“鉛筆”圖標
(3)在編輯器中,隨便寫點什么
(4)寫點提交信息描述你的更改
(5)點擊“Commit changes”按鈕
優(yōu)點:
a)Preview changes可以邊修改邊查看差異
3.pull request申請
pull request是github協(xié)作的核心逗扒,可以申請一個pull request古戴,請求別人review自己的修改。Pull request會顯示兩個分支內(nèi)容的不同矩肩,這些變更现恼,增加和刪除的行數(shù)會用綠色和紅色顯示出來。不但在提交代碼后可以申請一個pull request黍檩,甚至可以在代碼完成前提出叉袍,討論代碼如何修改。
(1)點擊頂部的pull request項刽酱,然后在點擊綠色的“New pull request”按鈕喳逛。
(2)選擇你修改的base分支feature和原始分支master進行比較。
(3)在對比頁面棵里,仔細檢查這些差異润文,確保是要提交的內(nèi)容。
(4)確認OK之后殿怜,點擊綠色的“Create Pull Request”按鈕转唉。
(5)給pull request寫上題目和簡短的描述
優(yōu)點:
a)可以在pull request消息中使用github的“@”功能,請求特定的人或者小組反饋信息稳捆,無論他們在哪里都可以收到。
4.合并pull request
最后這一步麦轰,就是在feature分支上的修改合并到master分支
(1)點擊綠色的“Merge pull request”按鈕將修改合并到master分支
(2)點擊“Confirm merge”
(3)點擊pull request成功提示右邊的“Delete Branch”
優(yōu)點:
a)merge有三種方法
b)可以在線修改沖突
c)合并后刪除的branch可以修復(fù)
四.github工作流
Github工作流是輕量級的乔夯,只有一個長期master分支的工作流。
來個圖表顯示:
·Master分支
·一個新的feature分支(因為我們要在這個分支上做特性開發(fā))
·Feature合并到master之前的軌跡如下
1.創(chuàng)建一個分支
在做一個項目時款侵,可能會在某個特定的時間有一大堆特性或想法——有已經(jīng)準備好開始干的末荐,有沒想好的。分支的存在就是來幫助管理這些工作流新锈。
創(chuàng)建好一個分支以后甲脏,就可以隨意按照自己的想法來修改,因為這個分支不會影響主分支妹笆,可以隨意提交修改測試块请,直到做好驗證才合入主分支。
分支是Git的核心概念拳缠,整個Github工作流都是基于它的墩新,一條原則就是:主分支的任何東西都是可部署的。因此窟坐,在開發(fā)某個需求或者解決某個bug的時候海渊,必須是從主分支拉取的分支绵疲,并且分支名是描述性的,以便其他人知道你在干什么臣疑。
2.做提交
提交可以讓別人清晰的看到分支的修改和為什么這么改盔憨,每次提交也都需要有提交信息。此外讯沈,每次提交應(yīng)該是一個獨立的單元郁岩,這樣,可以在發(fā)現(xiàn)問題或者方案改變時進行回滾芙盘。
3.提一個pull request
提一個pull request開始對提交修改進行討論驯用,大家都能清晰的看到接受這次請求之后有哪些修改將被合并。
如果工作陷入了困境儒老,即使沒有代碼也可以提一個pull request蝴乔,放一些截圖或者想法,讓大家給一些建議驮樊。
Pull request方式對開源代碼的合并是非常有意義的薇正,它可以讓代碼在合入master分支前有一個充分的review
4.討論和review代碼
一旦pull request被提出,reviewer將提出問題或者給出評語囚衔,比如:編碼風(fēng)格和項目風(fēng)格不一致挖腰,缺少單元測試等等,pull request設(shè)計的初衷就是鼓勵這些交流练湿。
5.部署
當(dāng)pull request通過review和測試,就可以部署到生產(chǎn)環(huán)境中猴仑。如果分支引起了問題,可以通過重新部署master分支到生產(chǎn)環(huán)境來回滾版本肥哎。
6.合并
現(xiàn)在辽俗,提交已經(jīng)在生產(chǎn)環(huán)境上驗證過了,可以合入master分支了篡诽。
華為軟件開發(fā)云配置管理服務(wù)VSgithub
1.收費標準
Github私倉每月繳納7美元崖飘。
華為軟件開發(fā)云?配置管理服務(wù)5人以下,500M倉庫免費杈女。存儲空間收費標準為0.000442(元/GB/小時)朱浴,一個月1G代碼約0.318元。
2.頁面友好度
Github需要在Your profile中查看倉庫达椰,各項操作堆疊在一個頁面翰蠢。
華為軟件開發(fā)云配置管理服務(wù),左側(cè)分類顯示內(nèi)容啰劲,主頁選項清晰躏筏。
3.工具集成
Github僅僅是一個代碼托管平臺。
華為軟件開發(fā)云配置管理服務(wù)是這個Devops平臺其中的一項服務(wù)呈枉,既可以作為代碼托管平臺單獨使用趁尼,又可以作為整個研發(fā)工具鏈的一部分來使用埃碱,所有數(shù)據(jù)在工具間拉通,平臺代碼可以直接構(gòu)建酥泞、部署砚殿,看到產(chǎn)品效果。
4.使用群體
Github歷史悠久芝囤,在開源社區(qū)廣受環(huán)境似炎,個人使用者較多。
華為軟件開發(fā)云?配置管理服務(wù)擁有更多的企業(yè)用戶悯姊,企業(yè)使用這個平臺用于整個研發(fā)周期羡藐。目前,個人使用者由于其指導(dǎo)詳細悯许,中文頁面的優(yōu)點仆嗦,使用數(shù)量也在呈增長趨勢。