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