参考如何给开源项目贡献代码 ,自己倒腾的时候,简化了下。
以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。