美文网首页
如何给开源项目贡献代码

如何给开源项目贡献代码

作者: 周肃 | 来源:发表于2017-01-14 22:27 被阅读101次

分两种情况:
代码仓库管理者给你添加该仓库的写入权限,这样的话可以直接push
如果不能直接push(大多数情况),采用经典的fork & pull request来提交代码,下面讲述这种情况

例如有个仓库https://github.com/ecomfe/esui.git
,其采用了经典的分支开发模型,稳定后的代码提交到master分支,其余特性则在dev分支上进行开发,待成熟后合并回master分支。
假如现在需要在其分支3.1.0-dev上提交代码(发现了BUG或者想提交新功能),那么比较简洁的做法如下:
第一步:克隆代码到本地
git clone https://github.com/ecomfe/esui.git

第二步:切换到远程分支3.1.0-dev(远程库默认名字为origin)
git checkout origin/3.1.0-dev

第三步:基于远程分支3.1.0-dev新建本地分支3.1.0-dev(注意远程分支和本地分支的区别,名字一样,但是一个是远程,一个是本地)
git checkout -b 3.1.0-dev

也可以这样

git branch 3.1.0-dev
git checkout 3.1.0-dev

第四步:在该分支提交你的更改,然后提交
git commit -m "fix memory leak bugs"

第五步:由于没有直接push到origin的权限,我们需要先对ESUI库进行fork,然后在本地添加一个新的推送地址
git remote add upstream git@github.com:zxhfighter/esui.git

第六步:推送本地分支到自己的ESUI fork库(需要先做合并,因为此时远程分支管3.1.0-dev可能合并了其他代码)
git fetch origin
git merge origin/3.1.0-dev
git push upstream 3.1.0-dev

# push相关命令

$git push origin master:master (在local repository中找到名字为master的branch,使用它去更新remote repository下名字为master的branch,如果remote repository下不存在名字是master的branch,那么新建一个)
$git push origin master (省略了<dst>,等价于“git push origin master:master”)
$git push origin master:refs/for/mybranch (在local repository中找到名字为master的branch,用他去更新remote repository下面名字为mybranch的branch)
$git push origin HEAD:refs/for/mybranch (HEAD指向当前工作的branch,master不一定指向当前工作的branch,所以我觉得用HEAD还比master好些)
$git push origin :mybranch (再origin repository里面查找mybranch,删除它。用一个空的去更新它,就相当于删除了) 

第七步:这样你的ESUI fork库的3.1.0-dev分支包含了你的最新更改,点击上面的“pull request”就可以推送请求了。注意推送的来源和目的地,如果不对需要点击Edit
进行修改,另外可以点击下面的标签file changed查看具体的变动,确认无误后填写pull request的标题和具体内容,点击create pull request
绿色按钮推送就可以了
如果评审人员给出了反馈需要继续修正代码,可以从第六步重新开始,这样所有的提交都会显示到同一个pull request中,如果想发起一个全新的pull request,可以拉出一个新的分支,然后重复第六步开始的工作。

相关文章

  • 如何给开源项目贡献代码

    分两种情况:代码仓库管理者给你添加该仓库的写入权限,这样的话可以直接push如果不能直接push(大多数情况),采...

  • 如何给开源项目贡献代码

    git参与开源项目的fork工作流 选择一个开源项目的仓库查看开源协议image.pngfork仓库,点击开源项目...

  • 九月第一周

    投简历 one blog: Git and GitHub 思考开源项目,选择一个开源项目,开始为开源项目贡献代码 ...

  • Github开源项目贡献代码

    最近在准备训练数据的过程中深深体会到了数据标注的困难与枯燥,碰巧又从推送里看到一个相关的开源项目,目标也是简化这一...

  • GitのPull request/Gitee day08

    2019/08/06 贡献代码 PR 如何参与一个开源项目呢?比如人气极高的bootstrap项目,这是一个非常强...

  • 8.如何为开源项目贡献代码

    前瞻 当我们在github上面看到了一个感兴趣的项目时,想参与进去,那我们应该如何给对方提供我们开发的功能代码呢?...

  • github 提交 pull request 流程 和 comm

    给Github上的开源项目贡献代码,就少不了 pull request 也会简称为 PR 或者 MR 为啥我不能直...

  • 7.git rebase

    前瞻 当你向开源项目贡献代码时,或者自己写开源项目时,为了时读者更好的看到你的commit更新记录,所以需要git...

  • 经过一个多月的等待我有幸成为Spring相关项目的Contrib

    给开源项目尤其是Spring这种知名度高的项目贡献代码是比较难的,起码胖哥是这么认为的。有些时候我们的灵感未必契合...

  • GitHub总结(四):Github-开源项目贡献流程

    开源项目贡献流程图示 贡献开源项目的流程就是以下这张图来展示的 ①首先,billie66下面有个开源项目TLCL,...

网友评论

      本文标题:如何给开源项目贡献代码

      本文链接:https://www.haomeiwen.com/subject/jnaebttx.html