如何优雅地在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 按钮, 添加相关注释后提交.
相关文章
相关标签/搜索