簡介
Android 開源項目在 Git 的使用上有兩個重要的創新,一個是爲多版本庫協同而引入的 repo,另外一個重要的創新就是 Gerrit —— 代碼審覈服務器。Gerrit 爲 Git 引入的代碼審覈是強制性的,就是說除非特別的授權設置,向 Git 版本庫的推送(Push)必須要經過 Gerrit 服務器,修訂必須經過代碼審覈的一套工作流之後,纔可能經批准並納入正式代碼庫中。
工作流程
開發者的代碼通過 git 命令(或 repo 封裝)推送到 Gerrit 管理下的 Git 版本庫,推送的提交轉化爲一個代碼審覈任務,審覈任務可以通過 refs/changes/<change-id> 下的引用訪問到。代碼審覈者可以通過 Web 界面查看審覈任務、代碼變更,通過 Web 界面做出通過代碼審覈或者打回等決定。測試者也可以通過 refs/changes/<change-id> 引用獲取(fetch)修訂對其進行測試,如果測試通過就可以將該評審任務設置爲校驗通過(verified)。最後經過了審覈和校驗的修訂可以通過 Gerrit 界面中提交動作合併到版本庫對應的分支中。 在 Android 項目的網站的代碼貢獻流程圖更爲詳細的介紹了 Gerrit 代碼審覈服務器的工作流程。 gerrit工作流程如下圖所示:
相關操作
提交代碼
- 修改代碼
- git status
- git add .
- git commit
- git push xxx
評審修改
- 修改代碼
- git status
- git add .
- git commit --amend
- git push xxx
衝突處理
- git checkout master
- git pull origin master
- git checkout TOPIC-BRANCH
- git rebase -i master