GitHub入門與實踐讀書筆記(二)

image | left

Pull Request

向開源項目提出你的合併

  • Fork

fork 你想 PR 的項目到自己的倉庫。

  • clone

把 fork 的項目 clone 到本地。

  • branch

創建一個 work 特徵的特徵分支,並切換到該分支下。

  • 添加代碼提交修改

提交到對應的特徵分支下,沒有的話自己在 GitHub 新建一個遠程分支

  • 發送你的 pull request

根據要合併項目的 issues 要求規範填寫你的合併緣由,等待管理員的處理

開發中的 Pull Request

對可能實現的功能或更改進行討論,可以使用 TaskList ,這樣可以清晰的瞭解到哪些功能沒有實現,哪些功能已經實現增加審查者的效率,也可以做爲備忘錄使用。

接收 Pull Request

  • 代碼檢查

將接收的內容放在本地,使用集成測試進行檢查,檢驗代碼是否能運行和安全,是否符合規範和要求。

在本地檢查需要合併的內容

  • 將接收的本地倉庫更新到最新
  • 獲取附送方的遠程倉庫
  • 創建用於檢查的分支
  • 合併

將通過檢查的檢查分支代碼與提交者的特徵分支進行合併

  • 刪除分支

刪除用於檢查的分支

確認安全的合併

如果以上代碼檢查沒有問題就可以在 Pull Request 頁面點擊 Merge pull request,進行合併。
這個合併過程是一個自動的過程,如果代碼比較少,可以直接在 GitHub 網站的網站對比直接進行合併。

GitHub Flow 的開發流程

開發流程

  • 令 master 分支處於隨時可部署的狀態
  • 進行新的作業時要從 master 分支創建新的分支,新分支名稱要具有描述性
  • 在創建的本地分支進行提交
  • 在 GitHub 端創建同名分支,定時 push
  • 需要幫助或者反饋時創建 Pull Request ,以 Pull Request 進行交流
  • 讓其它開發者進行審覈,確認作業完成後與 master 分支合併
  • 與 master 分支合併後立即部署

具體介紹

  • 實時部署,沒有發佈的概念
  • 進行新的作業時要從 master 分支新建新的分支
  • 在新創建分支中進行提交

提交粒度小,一旦完成小的任務,就提交

  • 定期 push

備份代碼。定時交流

  • 使用 Pull Request

不是在最後 master 合併時才 PR,而是寫完一部分功能後就 PR ,這樣可以一邊編碼,一邊聽取他人的修改意見

  • 務必讓其他開發者進行審查

審查時找沒有參與作業的,而且代碼應該通過自己的測試

  • 合併後立即部署

確認合併後的代碼是否存在問題

實踐GitHub Flow 的前提

部署作業完全自動化

  • 使用部署工具
  • 通過 Web 界面進行部署的工具
  • 實施部署時的鎖

重視測試

  • 讓測試自動化
  • 編寫測試代碼,通過全部測試
  • 維護測試代碼

Git Flow 的開發流程

以發佈爲中心的開發模式

標準工作流

  1. 從開發分支創建工作分支,進行功能的實現或修正
  2. 工作分支結束後與開發分支進行合併
  3. 重複 ① ② 直至功能可以發佈
  4. 創建用於發佈的分支,處理髮布的各項工作
  5. 發佈工作完成後與 master 分支合併,打上版本標籤進行發佈
  6. 如果發佈的軟件出現 BUG ,以打了標籤的版本爲基礎進行修正

導入 Git Flow 的準備

  • 安裝 git-flow
  • 倉庫初始化
  • 創建倉庫
  • 進行 git-flow 的初始化
  • 在遠程倉庫也創建 develop 分支

Git Flow 工作流

master 分支與 develop 分支的區別

master 分支始終保持可發佈的穩定狀態,發佈時必須包含版本標籤。這個分支不允許開發者直接修改和提交。develop 分支是開發過程中的代碼中心,這個分支和 master 分支一樣不允許開發者直接修改和提交。程序員需要自己新建 feature 分支,在 feature 分支中開發和修正。也就是說,develop 分支維持着開發過程中的最新源代碼。

在 feature 分支中的工作

  1. 從 develop 分支創建 feature 分支
  2. 在 feature 分支中實現目標功能
  3. 通過 GitHub 向 develop 分支發送 Pull Request
  4. 接收其他開發者審覈後,將Pull Request 合併到 develop 分支

完成的 feature 適當時間進行刪除

通過代碼審查實現代碼質量的提升

  1. 由其他開發者進行代碼審查,反饋在 Pull Request 中
  2. 修正代碼反饋的內容
  3. 將修改後特徵分支推送到遠端(自動添加到之前的 Pull Request)
  4. 重複前三步
  5. 確認 Pull Request 沒有問題,合併到 develop 分支

反饋的幾個要點:

  • 沒有測試or未通過測試
  • 違反編碼原則
  • 代碼品質過低(命名不明確, 方法冗長)
  • 還有重構的餘地
  • 有重複的部分

在 release 分支的工作

  • 創建分支

以最新的 develop 分支創建一個發佈分支

  • 分支內的工作

只處理與發佈前有關的提交,如:版本編號變更、bug 的修正。該分支不能包含功能的添加、變更等內容

  • 進行發佈與合併

合併至 master 將項目發佈

  • 查看版本標籤
$ git tag 

在 hotfix 分支中的工作

  • 創建新的補丁分支
  • 進行版本修復
  • Pull Request
  • 創建標籤併發布
  • 最後將它合併到開發分支

版本號的分配規則

格式: x.y.z

  • x 在重大內容更新或不向下兼容時加 1,此時 y、z 歸 0
  • y 在添加或刪除新功能加 1,此時 z 歸 0
  • z 只有在內部修改時加 1

舉個例子:

  • 1.0.0:最初發布的版本
  • 1.0.1:修復了輕微的 BUG
  • 1.0.2:修復了漏洞
  • 1.1.0:添加了新功能
  • 2.0.0:更新整個 UI 並添加新功能

注意事項

在合併後更新本地 develop 分支
將 develop 分支設爲默認分支,省去手動切換分支的麻煩

引用

[1] GitHub入門與實踐

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章