GitHub 如何为开源项目贡献代码

转载地址:https://blog.zfanw.com/best-practice-contribute-on-github/

分叉

首先,Fork开源项目到自己得github账户下,比如JackTuoTuo/VerificationCodeView到rgdzh1/VerificationCodeView

克隆

rgdzh1/VerificationCodeView克隆代码到本地:

$ git clone https://github.com/rgdzh1/VerificationCodeView.git

分支

进入克隆下来的代码目录,并创建一个分支,命名workFix:

$ cd VerificationCodeView
$ git checkout -b workFix

修改更新

在workFix分支下修改更新代码并commit:

$ git commit -m '更新XXX功能'

推送

将本地workFix分支中commit推送到github上temp_pr分支:

$ git push origin workFix:temp_pr

提交Pull request

分支推送到github后,rgdzh1/VerificationCodeView项目下就会出现pull request相关按钮,提交给上游的JackTuoTuo/VerificationCodeView,请求Merge。

思考

​ 一般我们使用衍合的目的,是想要得到一个能在远程分支上干净应用的补丁,比如某个项目你不是维护者,但是想帮点忙,最好使用衍合处理。
​ 先在自己的一个分支进行开发,当准备向主项目提交补丁的时候,根据最新的orgin/master进行一次衍合操作然后再提交,这样维护者就不需要任何整合工作。

更新上游库

  • 首先配置上游库:

    $ git remote add upstream https://github.com/JackTuoTuo/VerificationCodeView.git
    
  • 切换至本地库的master分支,同步上游库代码:

    $ git pull --rebase upstream master
    
  • 接着再切换到本地workFix分支,合并代码

    git rebase master
    

推送

  • 修改完成后,可以再次推送代码到github。

    $ git push origin workFix:temp_pr
    
  • 但是会推送失败,因为线上得temp_pr与线下得workFix分支所基于得base已经不一样了。git会提示我们先pull,merge。步过可以选择很暴力得方式,强制覆盖。

    $ git push --force origin workFix:temp_pr
    

清理分支

  • 在 pull request 被合并后,删除远程的 temp_pr 分支及本地 workFix分支

    $ git push origin --delete temp_pr
    $ git branch -D workFix
    

猜你喜欢

转载自blog.csdn.net/MoLiao2046/article/details/85604742