Github 相信已經成爲家喻戶曉的代碼託管工具, 但訪問了多位周圍編程愛好者後發現, 對其的使用還僅限於 下載項目源碼 和 備份項目源碼 的程度, 今天我就來介紹一下一個比較重要的使用場景 貢獻代碼git
以 swoole 爲例:github
git clone git@github.com:samt42/swoole-src.git
git remote add upstream https://github.com/swoole/swoole-src.git
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
New pull request
按鈕, 添加相關注釋後提交.Compare & pull request
按鈕, 添加相關注釋後提交.