一、Request
在講解Pull Request之前,我們需要先了解Request的概念。Request是指客戶端向服務器發送一個請求,服務器接收到請求後會進行處理並返回相應的結果。Request通常包括以下幾個方面:
1、請求類型:指請求的具體操作,如GET、POST等;
2、請求頭:包含了一些輔助信息,如User-Agent、Cookie等;
3、請求體:一些請求參數或數據。
Request的流程如下圖所示:
+-----------+
| |
+------------> | | +------------->
User | | Server | | API Server
+------------> | | +------------->
| |
+-----------+
用戶通過向服務器發送Request,從Server獲取資源並顯示在本地上。
二、Pull Requests的意義
Pull Request是一種在開源項目中廣泛使用的功能,它可以讓開發者將自己的代碼貢獻到倉庫中,並且與其他開發者交流和溝通。
Pull Request的基本流程如下:
Git倉庫 +----------->
Owner | |
| | Contributor
1.創建分支 | | 2.從原倉庫中Fork
| | /
3.代碼修改 | | / 4.提交Pull Request
| | /
5.等待管理員審核| | / 6.對話&修改
| | <-----
7.合併代碼&關閉PR| |
+-------------+
從以上流程可以看到,Pull Request讓貢獻者在不影響原倉庫的情況下,可以提交自己的貢獻。然後,Owner可以通過審核並進行合併,將貢獻者的代碼合併到主分支上。這種集思廣益的方式,使得開源項目能夠不斷發展和進步。
三、GitLab Merge Request
GitLab是一個類似於GitHub的代碼託管平台,但它提供的是私有倉庫和開源倉庫的服務。GitLab提供了Merge Request的功能,與GitHub上的Pull Request相似。要使用它,比如您需要登錄自己的帳號、fork倉庫、clone倉庫到本地,再進行代碼修改、提交,並在GitLab上發起一個Merge Request,請求倉庫管理員審核併合並您的代碼。
在GitLab Merge Request的流程中,需要對以下幾個方面進行了解:
1、分支:任何一次改動都是在某個分支上完成的,最常用的分支是master和develop;
2、源分支:拉取改動的或者現有的源分支;
3、目標分支:被改動的分支也就是及時合併的分支;
4、比較分支:比較源分支和目標分支之間的不同。
通過Merge Request的方式來提交代碼,可以讓開發者之間更好地溝通和協作,避免因同步代碼而產生的衝突和時間浪費。
四、發起Pull Requests的基本步驟
下面我們來討論一下在GitHub上如何發起Pull Requests以及如何管理Pull Requests,可以簡單地分為以下幾個步驟:
1.創建分支
在向原倉庫提交Pull Request之前,需要在自己的Fork中創建分支並進行自己的修改。
git clone https://github.com/【你的GitHub用戶名】/【原倉庫名】
cd 【原倉庫名】
git branch 【新分支名】
git checkout 【新分支名】
創建分支後,可以開始進行代碼的修改和編寫。需要注意的是,在Review代碼之前需要先將代碼進行本地commit和push操作,完成代碼的修改。
2.從原倉庫中Fork
在完成了代碼修改後,需要對代碼進行push和提交,進行Pull Request。
首先需要將代碼Push到自己的Fork中:
git push origin 【新分支名】
代碼Push到自己的Fork中後,需要到原倉庫中進行Pull Request。
3.提交Pull Requests
在執行Pull Request之前,需要首先到自己的Fork中進入代碼修改頁面,並點擊Pull Request進行提交。
提交Pull Request時,可以填寫一些代碼修改的說明,並選擇與原倉庫中的目標分支進行合併,如下圖所示:
+----------------+
| |
| Pull Request |
| |
+------+---------+
|
v
+------+---------+
| |
| |
| Pull Request |
| |
| |
+------+---------+
|
...
4.對話&修改
在提交Pull Request之後,原倉庫管理員將會接收到通知並進行代碼審核。如果審核通過,則Pull Request可以被合併。否則,管理員將會在Pull Request中進行審核和討論。
針對管理員的審核意見,貢獻者需要不斷地進行修改,然後再次提交Pull Request。反覆修改和提交的過程中,可以在Pull Request中與管理員進行溝通和交流,以達到更好的修改效果。
5.合併代碼&關閉PR
當管理員審核通過貢獻者提交的Pull Request後,管理員可以對代碼進行合併操作,並進行Pull Request的關閉操作。這樣,貢獻者的代碼就可以在原倉庫中正式地合併到主分支中了。
+-----------+
| |
PullRequest | | Merge
| Admin | ------->
| |
+-----------+
五、總結
Pull Request是開放源代碼世界中廣泛使用的一種功能,可以讓開發者之間更好地溝通和協作。它的核心在於讓原倉庫和貢獻者之間進行交互和討論,以達到合理、高質量的代碼貢獻。讓我們一起在開源世界中,共同貢獻我們的代碼,推動開源社區的進步吧!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/244190.html