2020年8月1日 星期六

Github

Github 觀念

Git是分散式管理系統

git不是集中式管理系統,概念不同,須先搞懂。

Repo分專案

clone / fork

專案分枝與合併

master / branch / merge

專案合併管理

push / pull request / code review / merge


Github 權限管理

Branch merge 保護設定(public repo 免費,private repo 要升級)


概念:
每個 Repository 可以加入 Collaborators,但是主要 branch 設定 merge 保護,確保
不被隨便 merge 。

設定 Repository 的 branch protections rule 強制要求需要code review 才能 merge

Setting:
位置 Setting/Branches/Branch Protections Rule
  • 增加 Branch Protection Rule apply to 某個 branch,通常是 staging or mater
  • 在要設定權限的 branch 加一個 .github 資料夾,裡面新增 CODEOWNERS 檔案。
  • branch 設定 required pull request review before merging
  • collaborators 發 pull request
  • 之後這個 brach 要 merge,都需要 code owner approve pull request

用組織管理權限(免費,可依據各 repo 設定 member 權限)

管理者建立一個組織,然後加入其他人為組織成員
每個成員可設定為組織 member 或 owner

針對 member 可設定加入的 repo,並且可以設定其權限
read, write, admin
在每個 repo 的 Setting/Manage access 裡面

Read: read, clone open comments on issues and pull requests.
Trige: read, clone, manage issue and pull requests.
Write: read, clone, push, manage issue and pull requests.
Maintain: read, clone, push, mange issues, pull requests, setting
Admin: all