如何優雅地在github上貢獻代碼

Github 相信已經成爲家喻戶曉的代碼託管工具, 但訪問了多位周圍編程愛好者後發現, 對其的使用還僅限於 下載項目源碼備份項目源碼 的程度, 今天我就來介紹一下一個比較重要的使用場景 貢獻代碼git

swoole 爲例:github

Fork 項目

  • 首先須要fork這個項目, 進入項目頁面, 點擊右上角的Fork按鈕
  • 你的 github 賬號中會出現 swoole/swoole-src 這個項目
  • 在本地電腦(Linux)上使用如下命令: 獲得一個 swoole-src 文件夾
git clone git@github.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 上, 使用如下代碼建立分支swoole

    git checkout -b branch1

    如今咱們能夠在分支上更改代碼了工具

  • 假設咱們已經添加了一些代碼, 提交到代碼庫code

    git commit -a -m "new commit"

合併修改

  • 一個常見的問題是遠程的 upstream (swoole/swoole-src) 有了新的更新, 從而會致使咱們提交的 Pull Request 時會致使衝突, 所以咱們能夠在提交前先把遠程其餘開發者的commit和咱們的commit合併.ip

  • 使用如下代碼切換到 master 分支:開發

    git checkout master
  • 使用如下代碼拉出遠程的最新代碼:rem

    git pull upstream master
  • 切換回 branch1:get

    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 按鈕, 添加相關注釋後提交.
相關文章
相關標籤/搜索