给开源项目提PR

参考如何给开源项目贡献代码 ,自己倒腾的时候,简化了下。

carrierwave-upyun 为例, 在没有开源库的写入权限下,如何给开源库提PR ?

四步走。

  • clone 开源库到本地:

    git clone https://github.com/nowa/carrierwave-upyun.git
    
  • 创建你的新分支:

    cd carrierwave-upyun
    git checkout -b my_branch
    

    进行修改后,commit。

    git commit -m "fixed bugs"
    
  • fork 开源库

    访问开源库,fork 开源库到自己的repos。

  • 本地push新分支:

    以我fork后的repos为例:

    # 添加新的推送地址
    git remote add upstream [email protected]:Lupeipei/carrierwave-upyun.git
    git push upstream my_branch
    

    再次访问开源库,发现新分支已经push上去了,创建PR即可。

[2020-03-26]补充:

如果发现开源库master上有更新,如何同步自己fork的库,然后再PR?

其中一个方法是删除之前fork的库,重新fork,但是显然太粗暴了。

在本地仓库目录下,更适合的方式:

git checkout master
# 拉原仓库最新代码
git fetch origin
git reset --hard origin/master
git checkout -b my_other_branch
# do something, commit
git push upstream my_other_branch

OK。

参考

如何给开源项目贡献代码