看完給跪了:技術大牛總結的Github與華為軟體開發雲完整對比

NO IMAGE

華為軟體開發雲配置管理 服務和Github是國內外比較有代表性的程式碼託管平臺,它們以git作為版本管理工具,使專案中身處各地的人員可以協同工作,主要操作涉及倉庫、分支、提交、pull request等知識。本文將講述它們的操作和區別。

Github介紹

一.註冊

填寫個人資料,郵箱啟用。

二.倉庫

1.倉庫型別

私有倉庫:每月繳納7美元,後期可以隨時調整成其它免費的公共倉。

公有倉庫:免費,所有人可見。

2.新建倉庫

一個倉庫通常用於單個工程,倉庫可以包含資料夾,檔案,圖片,視訊,表格等任何專案所需資料。Github在新建專案時可以選擇同時建立README檔案或license檔案。

(1)在網頁的右上角,點選頭像旁邊的加號,選擇“New repository”。

(2)給倉庫命名為“hello word”

(3)可以寫一個簡短的專案描述

(4)選擇“Initialize this repository with a README”

(5)點選“Create repository”

優點:

a)建立時可以選擇gitignore型別,因為在工程編譯過程中,會生成一些中間檔案,或者專案中的一些檔案是不需要進行版本管理的,這些檔案對Github來講是透明的,若gitignore選擇了C專案,.lib .so .exe等都被忽略了。

b)Settings中可以對倉庫重新命名

三.分支

分支是在同一倉庫不同版本上工作的方法。倉庫預設有一個master分支,一般用作生產環境。當從master分支新建一個分支,意味著在這個時間點對master分支做了一個拷貝或者說快照,其他人對master分支做的改動不會影響到新分支。

在Github上,開發者,設計者使用多個分支去修正bug和需求開發,驗證OK後,最後合併到master生產分支。

1.新建分支

(1)進入倉庫

(2)單擊檔案列表頂部的下拉框“branch: master”

(3)在文字框中敲入新分支名字feature

(4)選擇“Create branch”或者直接回車

2.線上編輯

每個提交都有關聯的提交資訊,用來解釋為什麼要做這樣一個修改。提交資訊記錄的這些歷史,可以使其他開發人員瞭解這次提交做了什麼和為什麼要這樣做。

(1)點選README.md檔案。

(2)點選要編輯檔案右上角的“鉛筆”圖示

(3)在編輯器中,隨便寫點什麼

(4)寫點提交資訊描述你的更改

(5)點選“Commit changes”按鈕

優點:

a)Preview changes可以邊修改邊檢視差異

3.pull request申請

pull request是github協作的核心,可以申請一個pull request,請求別人review自己的修改。Pull request會顯示兩個分支內容的不同,這些變更,增加和刪除的行數會用綠色和紅色顯示出來。不但在提交程式碼後可以申請一個pull request,甚至可以在程式碼完成前提出,討論程式碼如何修改。

(1)點選頂部的pull request項,然後在點選綠色的“New pull request”按鈕。

(2)選擇你修改的base分支feature和原始分支master進行比較。

(3)在對比頁面,仔細檢查這些差異,確保是要提交的內容。

(4)確認OK之後,點選綠色的“Create Pull Request”按鈕。

(5)給pull request寫上題目和簡短的描述

優點:

a)可以在pull request訊息中使用github的“@”功能,請求特定的人或者小組反饋資訊,無論他們在哪裡都可以收到。

4.合併pull request

最後這一步,就是在feature分支上的修改合併到master分支

(1)點選綠色的“Merge pull request”按鈕將修改合併到master分支

(2)點選“Confirm merge”

(3)點選pull request成功提示右邊的“Delete Branch”

優點:

a)merge有三種方法

b)可以線上修改衝突

c)合併後刪除的branch可以修復

四.github工作流

Github工作流是輕量級的,只有一個長期master分支的工作流。

來個圖表顯示:

·Master分支

·一個新的feature分支(因為我們要在這個分支上做特性開發)

·Feature合併到master之前的軌跡如下

1.建立一個分支

在做一個專案時,可能會在某個特定的時間有一大堆特性或想法——有已經準備好開始乾的,有沒想好的。分支的存在就是來幫助管理這些工作流。

建立好一個分支以後,就可以隨意按照自己的想法來修改,因為這個分支不會影響主分支,可以隨意提交修改測試,直到做好驗證才合入主分支。

分支是Git的核心概念,整個Github工作流都是基於它的,一條原則就是:主分支的任何東西都是可部署的。因此,在開發某個需求或者解決某個bug的時候,必須是從主分支拉取的分支,並且分支名是描述性的,以便其他人知道你在幹什麼。

2.做提交

提交可以讓別人清晰的看到分支的修改和為什麼這麼改,每次提交也都需要有提交資訊。此外,每次提交應該是一個獨立的單元,這樣,可以在發現問題或者方案改變時進行回滾。

3.提一個pull request

提一個pull request開始對提交修改進行討論,大家都能清晰的看到接受這次請求之後有哪些修改將被合併。

如果工作陷入了困境,即使沒有程式碼也可以提一個pull request,放一些截圖或者想法,讓大家給一些建議。

Pull request方式對開原始碼的合併是非常有意義的,它可以讓程式碼在合入master分支前有一個充分的review

4.討論和review程式碼

一旦pull request被提出,reviewer將提出問題或者給出評語,比如:編碼風格和專案風格不一致,缺少單元測試等等,pull request設計的初衷就是鼓勵這些交流。

5.部署

當pull request通過review和測試,就可以部署到生產環境中。如果分支引起了問題,可以通過重新部署master分支到生產環境來回滾版本。

6.合併

現在,提交已經在生產環境上驗證過了,可以合入master分支了。

華為軟體開發雲配置管理服務VSgithub

1.收費標準

Github私倉每月繳納7美元。

華為軟體開發雲 配置管理服務5人以下,500M倉庫免費。儲存空間收費標準為0.000442(元/GB/小時),一個月1G程式碼約0.318元。

2.頁面友好度

Github需要在Your profile中檢視倉庫,各項操作堆疊在一個頁面。

華為軟體開發雲配置管理服務,左側分類顯示內容,主頁選項清晰。

3.工具整合

Github僅僅是一個程式碼託管平臺。

華為軟體開發雲配置管理服務是這個Devops平臺其中的一項服務,既可以作為程式碼託管平臺單獨使用,又可以作為整個研發工具鏈的一部分來使用,所有資料在工具間拉通,平臺程式碼可以直接構建、部署,看到產品效果。

4.使用群體

Github歷史悠久,在開源社群廣受環境,個人使用者較多。

華為軟體開發雲 配置管理服務擁有更多的企業使用者,企業使用這個平臺用於整個研發週期。目前,個人使用者由於其指導詳細,中文頁面的優點,使用數量也在呈增長趨勢。