1. 程式人生 > >開始為開源社群貢獻程式碼了,測試了一把,方法如下

開始為開源社群貢獻程式碼了,測試了一把,方法如下

Github 相信已經成為家喻戶曉的程式碼託管工具, 但訪問了多位周圍程式設計愛好者後發現, 對其的使用還僅限於 下載專案原始碼 和 備份專案原始碼 的程度, 今天我就來介紹一下一個比較重要的使用場景 貢獻程式碼

Fork 專案

  • 首先需要fork這個專案, 進入專案頁面, 點選右上角的Fork按鈕
  • 你的 github 帳號中會出現 swoole/swoole-src 這個專案
  • 在本地電腦(Linux)上使用以下命令: 得到一個 swoole-src 資料夾
git clone [email protected].com:samt42/swoole-src.git 

獲取原專案程式碼

  • 進入 swoole-src 資料夾, 新增 swoole 的遠端地址
git remote add upstream https://github.com/swoole/swoole-src.git
  • 獲取 swoole 最新原始碼
git pull upstream master

現在我們在 fork 來的 master 分支上, 這個 master 留作跟蹤 upstream 的遠端程式碼...

建立分支

  • 好了, 現在可以開始貢獻我們的程式碼了
    按照國際慣例, 我們一般不在 master 上提交新程式碼, 而需要為新增的功能或者fixbug建立新分支, 再合併到 master 上, 使用以下程式碼建立分支

    git checkout -b branch1
    

    現在我們可以在分支上更改程式碼了

  • 假設我們已經添加了一些程式碼, 提交到程式碼庫

    git commit -a -m "new commit"
    

合併修改

  • 一個常見的問題是遠端的 upstream (swoole/swoole-src) 有了新的更新, 從而會導致我們提交的 Pull Request 時會導致衝突, 因此我們可以在提交前先把遠端其他開發者的commit和我們的commit合併.

  • 使用以下程式碼切換到 master 分支:

    git checkout master
    
  • 使用以下程式碼拉出遠端的最新程式碼:

    git pull upstream master
    
  • 切換回 branch1:

    git checkout branch1
    
    > 如果忘記自己之前建的分支名可以用 `git branch` 檢視
    
  • 把 master 的 commit 合併到 branch1:

    git rebase master
    
  • 把更新程式碼提交到自己的 branch1 中:

    git push origin branch1
    

Pull Request

  • 提交 Pull Request
    你可以在你的 github 程式碼倉庫頁面切換到 branches 頁面點選 branch1 分支後點擊 New pull request 按鈕, 新增相關注釋後提交.
    OR
    切換到 branch1 分支的程式碼倉庫點選 Compare & pull request 按鈕, 新增相關注釋後提交.