請求發送方: 0. 一般可以采用fork一份某倉庫(project-name)到自己的github 1. 克隆該自己的github下的該倉庫到本地 git clone git@github.com:user-name/project-name.git 2. 創建本地倉庫project-name的分支特性倉庫(一般主流開發方式使用特性分支以及以特性分支提交Pull Request),如feature-A git checkout -b feature-A 3. 修改特性分支倉庫中的文件內容,提交修改 git diff git add some-files git commit -m "some commits information strings" 4. 在該特性分支下創建遠程分支 git push origin new-remote-branch-project-name git branch -a 5. 登錄github,並查看分支間的差別,確認無誤后可創建Pull Request並填寫相應的注釋說明提交該請求到fork的所在的倉庫所有者的分支 6. 該fork的倉庫所有者將受到Pull Request請求,並可以處理該請求,或接受采納合並並回復注釋說明並關閉該請求,或者拒絕該請求並注釋說明 7. 以上為通過fork方式提交Pull Request,也可以不進行fork而直接從分支發送Pull Request 前提:用戶需要由對該倉庫有編輯的權限,則可直接創建分支,從分支發送Pull Request而不需要再單獨fork一份的麻煩. 接收方: 0. 接收方倉庫所有者首先需要先fork並clone到自己的本地開發環境下,或者已clone的需要先pull、push等操作以更新至最新狀態 1. 將Pull Request發送方的倉庫設置為本地倉庫的遠程倉庫(給Pull Request發送方設置某個簡易的名稱PRsender(或者其他的),此后便可使用該名稱來操作git) git remote add PRsender git@github.com:sender-name/project-name.git git fetch PRsender 以上操作將獲取到發送方的倉庫及分支的數據 2. 創建用於檢查Pull Request的分支,如: PR-feature-A git checkout -b PR-feature-A 3. 合並該創建的分支(PR-feature-A)與發送方的倉庫分支 git merge PRsender/feature-A 合並后,可通過一些自動測試的檢查工具,看是否可以正常運行 4. 檢查后該PR-feature-A分支可以刪除 git branch -D PR-feature-A 5. 找到Pull Request請求頁面,找到相應的請求項內容,若采納則可執行合並操作,否則提交解釋信息,此后便可關閉該Pull Request 6. 對於合並到主分支,可以采用以下方式: git checkout master git merge PRsender git diff git push 以上方式將倉庫的Pull Request自動從Open狀態轉為Close狀態 7. 對於安全的接收Pull Request請求,一定要靈活的創建分支、合並分支等操作,此外對於簡單的代碼可以用github網頁執行合並Pull Request請求, 不過對於復雜的情況時,建議采用創建檢查分支、合並分支的方式,避免出現錯誤的、無法運行的代碼。