[技術博客]在團隊中使用Pull Request來管理代碼


在團隊中使用Pull Request來管理代碼

前言

在參加多人共同開發項目,且選用Git作為代碼托管工具的時候,我們不免會遇到分支沖突、覆蓋、合並等問題。顯然,因為同一個倉庫是屬於大家的,所以每個人都有權限向倉庫中push或者pull數據。但是這樣難免會帶來混亂,在人數較多的時候,更是容易出現問題。

目前,在很多團隊項目中,都使用Pull Request(GitLab稱為Merge Request)來進行Code Review。Pull Request是一種有效的管理源代碼的方式,尤其是在許多人一起貢獻源代碼的時候,顯得尤為重要。

Pull Request的優點:

  • Auto Merge功能。哪怕兩份代碼並非在最新的master分支情況下進行修改,Pull Request也會智能識別,將多份來自於不同分支的代碼進行合並。
  • Code Review功能。開發者提交上去的代碼可由管理者進行復審。復審過程中出現的任何問題,可以直接在commit中進行指出,也可以引用相關代碼行來指出問題,交流方便。
  • 與Issue的綁定功能。Pull Request可以與Issue進行綁定,相當於指定了完成某個Issue所修改的代碼,在回顧時可以較為清晰的看到代碼變化。

下面,將介紹Pull Request模式的工作流程。

提出需求

所有的任務、需求、Bug修復都以Issue的形式呈現。管理員、開發者、測試員等都可以創建Issue。

Github的創建Issue界面如圖所示,左側主要填寫需求的具體內容,支持Markdown。

右側可以將需求直接指派給某位開發者。如果不指派,開發者也可以選擇認領任務。

右下角有Linked Pull Request,可以將與該Issue相關的Pull Request與此Issue構建聯系,若Pull Request通過,則代表該Issue被完成。

開發者操作

在該工作模式下,master分支是受保護的——任何開發者都無權直接修改master分支,哪怕是管理員也不應當對master分支進行直接修改,否則會造成混亂。

那么,如果開發者想要修改master分支中的內容怎么辦呢?

  • 從master分支創建出去一個屬於自己的分支,用作開發者自己進行調試的開發環境。

    開發分支的建議命名格式:操作者姓名--操作內容,如guojun--add-readme。千萬不要命名為dev1,dev2這種毫無信息量的名字,否則修改記錄將難以追溯!

    (master) git checkout -b guojun--add-readme
    
  • 修改開發分支中的內容,本地測試,push到開發分支。

    (guojun--add-readme) git add --all
    (guojun--add-readme) git commit -m "add README.md"
    (guojun--add-readme) git push -u origin guojun--add-readme
    
  • 最重要的一步,提交Pull Request到master分支

你可以輸入一些關於這個PR的說明,以供其他人進行Review。

PR上傳之后,等着組內專門的Reviewers來進行Review吧。

對於不同的倉庫,例如前端、后端等,Reviewers可以是測試人員,也可以是PM。

代碼復審

我們切換到Reviewers界面。

此時,Reviewers若對代碼不滿,可以在對應的代碼出標出,讓開發人員繼續修改。若沒有問題,且出現圖中綠色的畫面(和基礎分支不沖突),則可以進行Merge。

恭喜!這樣代碼就Merge完成了。一般情況下,需要刪掉PR所創建的開發分支。

另外,如果Merge過程中出現沖突,如多個PR修改了同一份文件,GitHub還提供網頁版編輯器供Reviewer去選擇應該保留哪些、不保留哪些。

以上就是開發者進行源代碼修改的整個過程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM