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
按钮, 添加相关注释后提交.