blob: da48265430ac18b48f4323f74a9c5d50cf100ead [file] [log] [blame]
(window.webpackJsonp=window.webpackJsonp||[]).push([[1005],{1574:function(t,e,a){"use strict";a.r(e);var s=a(71),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"代码提交指南"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#代码提交指南"}},[t._v("#")]),t._v(" 代码提交指南")]),t._v(" "),a("h2",{attrs:{id:"贡献途径"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#贡献途径"}},[t._v("#")]),t._v(" 贡献途径")]),t._v(" "),a("p",[t._v("IoTDB诚邀广大开发者参与开源项目构建")]),t._v(" "),a("p",[t._v("您可以查看"),a("a",{attrs:{href:"https://issues.apache.org/jira/projects/IOTDB/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("issues"),a("OutboundLink")],1),t._v("并参与解决,或者做其他改善。")]),t._v(" "),a("p",[t._v("提交pr,通过Travis-CI测试和Sonar代码质量检测后,至少有一位以上Committer同意且代码无冲突,就可以合并了")]),t._v(" "),a("h2",{attrs:{id:"pr指南"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pr指南"}},[t._v("#")]),t._v(" PR指南")]),t._v(" "),a("p",[t._v("在Github上面可以很方便地提交 "),a("a",{attrs:{href:"https://help.github.com/articles/about-pull-requests/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Pull Request (PR)"),a("OutboundLink")],1),t._v(",下面将以本网站项目"),a("a",{attrs:{href:"https://github.com/apache/incubator-iotdb",target:"_blank",rel:"noopener noreferrer"}},[t._v("apache/incubator-iotdb"),a("OutboundLink")],1),t._v(" 为例(如果是其他项目,请替换项目名incubator-iotdb)")]),t._v(" "),a("h3",{attrs:{id:"fork仓库"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fork仓库"}},[t._v("#")]),t._v(" Fork仓库")]),t._v(" "),a("p",[t._v("进入 apache/incubator-iotdb 的 "),a("a",{attrs:{href:"https://github.com/apache/incubator-iotdb",target:"_blank",rel:"noopener noreferrer"}},[t._v("github 页面"),a("OutboundLink")],1),t._v(" ,点击右上角按钮 "),a("code",[t._v("Fork")]),t._v(" 进行 Fork")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/37333508/79351839-bd288900-7f6b-11ea-8d12-feb18c35adad.png",alt:""}})]),t._v(" "),a("h3",{attrs:{id:"配置git和提交修改"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#配置git和提交修改"}},[t._v("#")]),t._v(" 配置git和提交修改")]),t._v(" "),a("ul",[a("li",[t._v("将代码克隆到本地:")])]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("git clone https://github.com/<your_github_name>/incubator-iotdb.git\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("p",[a("strong",[t._v("请将 <your_github_name> 替换为您的github名字")])]),t._v(" "),a("p",[t._v("clone完成后,origin会默认指向github上的远程fork地址。")]),t._v(" "),a("ul",[a("li",[t._v("将 apache/incubator-iotdb 添加为本地仓库的远程分支 upstream:")])]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("cd incubator-iotdb\ngit remote add upstream https://github.com/apache/incubator-iotdb.git\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br")])]),a("ul",[a("li",[t._v("检查远程仓库设置:")])]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("git remote -v\norigin https://github.com/<your_github_name>/incubator-iotdb.git (fetch)\norigin https://github.com/<your_github_name>/incubator-iotdb.git(push)\nupstream https://github.com/apache/incubator-iotdb.git (fetch)\nupstream https://github.com/apache/incubator-iotdb.git (push)\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br")])]),a("ul",[a("li",[t._v("新建分支以便在分支上做修改:(假设新建的分支名为fix)")])]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("git checkout -b fix\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("p",[t._v("创建完成后可进行代码更改。")]),t._v(" "),a("ul",[a("li",[t._v("提交代码到远程分支:(此处以fix分支为例)")])]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v('git commit -a -m "<you_commit_message>"\ngit push origin fix\n')])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br")])]),a("p",[t._v("更多 git 使用方法请访问:"),a("a",{attrs:{href:"https://www.atlassian.com/git/tutorials/setting-up-a-repository",target:"_blank",rel:"noopener noreferrer"}},[t._v("git 使用"),a("OutboundLink")],1),t._v(",这里不赘述。")]),t._v(" "),a("h3",{attrs:{id:"创建pr"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#创建pr"}},[t._v("#")]),t._v(" 创建PR")]),t._v(" "),a("p",[t._v("在浏览器切换到自己的 github 仓库页面,切换分支到提交的分支 <your_branch_name> ,依次点击 "),a("code",[t._v("New pull request")]),t._v(" 和 "),a("code",[t._v("Create pull request")]),t._v(" 按钮进行创建,如果您解决的是"),a("a",{attrs:{href:"https://issues.apache.org/jira/projects/IOTDB/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("issues"),a("OutboundLink")],1),t._v(",需要在开头加上[IOTDB-xxx],如下图所示:")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/37333508/79414865-5f815480-7fde-11ea-800c-47c7dbad7648.png",alt:""}})]),t._v(" "),a("p",[t._v("至此,您的PR创建完成,更多关于 PR 请阅读 "),a("a",{attrs:{href:"https://help.github.com/categories/collaborating-with-issues-and-pull-requests/",target:"_blank",rel:"noopener noreferrer"}},[t._v("collaborating-with-issues-and-pull-requests"),a("OutboundLink")],1)]),t._v(" "),a("h3",{attrs:{id:"冲突解决"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#冲突解决"}},[t._v("#")]),t._v(" 冲突解决")]),t._v(" "),a("p",[t._v("提交PR时的代码冲突一般是由于多人编辑同一个文件引起的,解决冲突主要通过以下步骤即可:")]),t._v(" "),a("p",[t._v("1:切换至主分支")]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("git checkout master\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("p",[t._v("2:同步远端主分支至本地")]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("git pull upstream master\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("p",[t._v("3:切换回刚才的分支(假设分支名为fix)")]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("git checkout fix\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("p",[t._v("4:进行rebase")]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("git rebase -i master\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("p",[t._v("此时会弹出修改记录的文件,一般直接保存即可。然后会提示哪些文件出现了冲突,此时可打开冲突文件对冲突部分进行修改,将提示的所有冲突文件的冲突都解决后,执行")]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("git add .\ngit rebase --continue\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br")])]),a("p",[t._v("依此往复,直至屏幕出现类似 "),a("em",[t._v("rebase successful")]),t._v(" 字样即可,此时您可以进行往提交PR的分支进行更新:")]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("git push -f origin fix\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("p",[t._v("这个指导文档修改于"),a("a",{attrs:{href:"http://servicecomb.apache.org/developers/submit-codes/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Apache ServiceComb"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=r.exports}}]);