(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{560:function(t,s,a){t.exports=a.p+"assets/img/github-fork.757121ed.png"},561:function(t,s,a){t.exports=a.p+"assets/img/github-fork-target.567ef6bb.png"},562:function(t,s,a){t.exports=a.p+"assets/img/github-ui-fetch.06ba0c98.png"},563:function(t,s,a){t.exports=a.p+"assets/img/github-ui-editor.315f42af.png"},564:function(t,s,a){t.exports=a.p+"assets/img/github-ui-contribute.d6348f91.png"},565:function(t,s,a){t.exports=a.p+"assets/img/github-ui-create-pr.1fef0cf3.png"},566:function(t,s,a){t.exports=a.p+"assets/img/github-ui-create-pr-detail.3dc4555a.png"},638:function(t,s,a){"use strict";a.r(s);var e=a(5),n=Object(e.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"contribute"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#contribute"}},[t._v("#")]),t._v(" Contribute")]),t._v(" "),e("p",[t._v("docmoa에 문서 기여하기위한 가이드를 설명합니다. 일반적인 github 상에서의 코드 기여 방식과 동일합니다.")]),t._v(" "),e("h2",{attrs:{id:"git-설치-option"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#git-설치-option"}},[t._v("#")]),t._v(" git 설치(Option)")]),t._v(" "),e("p",[t._v("로컬 환경에서 git 명령을 수행하기 위해 설치합니다. github 브라우저 환경에서 수정하는 것도 가능하지만, 로컬에서 문서를 활용하고 오프라인 작업을 위해서는 설치하시기를 권장합니다.")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98",target:"_blank",rel:"noopener noreferrer"}},[t._v("Git 설치 방법 안내"),e("OutboundLink")],1),t._v("를 참고하여 아래 설명합니다.")]),t._v(" "),e("Tabs",{attrs:{type:"border-card"}},[e("Tab",{attrs:{label:"Mac"}},[e("ul",[e("li",[t._v("Mavericks(10.9)부터는 Terminal에 단지 처음으로 'git’을 실행하는 것으로 설치가 시작됩니다.")]),t._v(" "),e("li",[t._v("공식 배포판 : "),e("a",{attrs:{href:"http://git-scm.com/download/mac",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://git-scm.com/download/mac"),e("OutboundLink")],1),t._v(" 에서 다운로드 받은 설치파일을 실행하여 설치합니다.")])])]),t._v(" "),e("Tab",{attrs:{label:"Windows"}},[e("ul",[e("li",[t._v("공식 배포판 : "),e("a",{attrs:{href:"http://git-scm.com/download/win",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://git-scm.com/download/win"),e("OutboundLink")],1),t._v(" 에서 다운로드 받은 설치파일을 실행하여 설치합니다.")]),t._v(" "),e("li",[t._v("GitHub Desktop : "),e("a",{attrs:{href:"https://desktop.github.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub Desktop 웹사이트"),e("OutboundLink")],1),t._v("에서 내려받아 설치합니다.")])])]),t._v(" "),e("Tab",{attrs:{label:"Linux(Fedora/RHEL/CentOS/Rocky)"}},[e("div",{staticClass:"language-bash line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" dnf "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" git-all\n")])]),t._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[t._v("1")]),e("br")])])]),t._v(" "),e("Tab",{attrs:{label:"Linux(Debian/Ubuntu)"}},[e("div",{staticClass:"language-bash line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" git-all\n")])]),t._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[t._v("1")]),e("br")])])])],1),t._v(" "),e("h2",{attrs:{id:"github-fork"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#github-fork"}},[t._v("#")]),t._v(" github "),e("code",[t._v("Fork")])]),t._v(" "),e("p",[t._v("문서는 github상에서 관리됩니다. 우선 문서를 추가구성하고 수정할 수 있도록 원본 github repo를 "),e("code",[t._v("Fork")]),t._v(" 합니다.")]),t._v(" "),e("ol",[e("li",[e("code",[t._v("https://github.com/docmoa/docs")]),t._v("로 이동합니다.")]),t._v(" "),e("li",[t._v("우측 상단의 "),e("code",[t._v("Fork")]),t._v("를 클릭하고 나의 github Org를 선택합니다.\n"),e("img",{attrs:{src:a(560),alt:"Fork"}}),t._v(" "),e("img",{attrs:{src:a(561),alt:"Fork-Target"}})])]),t._v(" "),e("h2",{attrs:{id:"git-fetch-or-pull"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#git-fetch-or-pull"}},[t._v("#")]),t._v(" git "),e("code",[t._v("Fetch")]),t._v(" or "),e("code",[t._v("Pull")])]),t._v(" "),e("p",[t._v("Fork의 원본 Repo에 변경에 대해 작업중인 Repo에 변경사항을 적용해야 하는 필요성이 있습니다. 여러 편집자가 동일한 시점에 동일 문서를 편집하게 되면 편집에 충돌이 발생할 수 있습니다.")]),t._v(" "),e("p",[e("img",{attrs:{src:"https://upload.wikimedia.org/wikipedia/commons/9/97/Paragraph-based_prototype_–_rough_visualization_of_the_functionality.png",alt:"Conflict"}}),t._v("\n참고 : "),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/Edit_conflict",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://en.wikipedia.org/wiki/Edit_conflict"),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("충돌을 사전에 최대한 방지하기 위해서 편집 전에 원본의 문서를 가져오고 병합하는 과정이 필요합니다.")]),t._v(" "),e("Tabs",{attrs:{type:"border-card"}},[e("Tab",{attrs:{label:"CLI base"}},[e("p",[t._v("CLI 컨트롤을 위해서는 앞서 git 유틸 설치가 필요합니다.")]),t._v(" "),e("div",{staticClass:"language-bash line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 1. Fork 받은 본인 소유의 Repo를 Clone 받습니다.")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" clone https://github.com/docmoa/docs\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 2. 해당 소스 디렉토리로 이동하여 remote 를 확인합니다.")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" docs\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" remote -v\norigin\thttps://github.com/myorg/docs.git "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("fetch"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\norigin\thttps://github.com/myorg/docs.git "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("push"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 3. 문서 원본 Repo와의 병합을 위해 `upstream` repo remote를 추가합니다.")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" remote "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" upstream https://github.com/docmoa/docs\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 4-1. pull 을 수행하거나")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" pull upstream main\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 4-2. fetch & merge 를 수행합니다.")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" fetch upstream\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" merge upstream/main\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("span",{staticClass:"line-number"},[t._v("6")]),e("br"),e("span",{staticClass:"line-number"},[t._v("7")]),e("br"),e("span",{staticClass:"line-number"},[t._v("8")]),e("br"),e("span",{staticClass:"line-number"},[t._v("9")]),e("br"),e("span",{staticClass:"line-number"},[t._v("10")]),e("br"),e("span",{staticClass:"line-number"},[t._v("11")]),e("br"),e("span",{staticClass:"line-number"},[t._v("12")]),e("br"),e("span",{staticClass:"line-number"},[t._v("13")]),e("br"),e("span",{staticClass:"line-number"},[t._v("14")]),e("br"),e("span",{staticClass:"line-number"},[t._v("15")]),e("br"),e("span",{staticClass:"line-number"},[t._v("16")]),e("br"),e("span",{staticClass:"line-number"},[t._v("17")]),e("br"),e("span",{staticClass:"line-number"},[t._v("18")]),e("br")])])]),t._v(" "),e("Tab",{attrs:{label:"UI base"}},[e("p",[t._v("원본 Repo에 변화가 있으면 UI상에서 상태가 알려집니다. 이 경우 우측의 "),e("code",[t._v("Fetch upstream")]),t._v(" 을 통해 "),e("code",[t._v("Compare")]),t._v("로 변경사항을 확인하거나 "),e("code",[t._v("Fetch and merge")]),t._v("로 현재의 Repo에 병합할 수 있습니다.\n"),e("img",{attrs:{src:a(562),alt:"Fetch and merge UI"}})])])],1),t._v(" "),e("h2",{attrs:{id:"git-add-and-commit"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#git-add-and-commit"}},[t._v("#")]),t._v(" git "),e("code",[t._v("add")]),t._v(" and "),e("code",[t._v("commit")])]),t._v(" "),e("p",[t._v("문서 작성은 앞서 "),e("RouterLink",{attrs:{to:"/00-Howto/02-Guide/01-Start.html"}},[t._v("문서작성 '시작'")]),t._v("을 참고하세요. 문서 또는 문서 작성에 필요했던 이미지 등 준비가 끝나면 해당 파일을 본인 소유의 Repo에 추가합니다. 이 때 사용하는 것은 CLI도 가능하고, UI 기반에서 작성한 경우에는 저장 즉시 해당 Repo에 저장됩니다. Commit의 경우 필요에 따라 브랜치를 별도 생성하여 본인의 Repo를 기준으로 관리하는 것 또한 가능합니다.")],1),t._v(" "),e("Tabs",{attrs:{type:"border-card"}},[e("Tab",{attrs:{label:"CLI base"}},[e("p",[t._v("CLI 컨트롤을 위해서는 앞서 git 유틸 설치가 필요합니다.")]),t._v(" "),e("div",{staticClass:"language-bash line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 1. 작성한 파일을 git의 관리 대상으로 add 합니다.")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" path/문서.md\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 2. 로컬 Repo에서 변경사항을 Commit 합니다.")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" commit -m "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"커밋메시지를 남깁니다.(예를들어 : 문서를 수정)"')]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 3. 원격 Repo로 변경사항을 Push 합니다.")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" push origin main\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("span",{staticClass:"line-number"},[t._v("6")]),e("br"),e("span",{staticClass:"line-number"},[t._v("7")]),e("br"),e("span",{staticClass:"line-number"},[t._v("8")]),e("br")])])]),t._v(" "),e("Tab",{attrs:{label:"UI base"}},[e("p",[t._v("github 웹 환경에서 문서를 추가하고 수정하는 것도 가능합니다.\n"),e("img",{attrs:{src:a(563),alt:"github ui edit"}})])])],1),t._v(" "),e("h2",{attrs:{id:"contribute-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#contribute-2"}},[t._v("#")]),t._v(" Contribute")]),t._v(" "),e("p",[t._v("최종적으로 Fork 한 Repo에 docmoa에 기여할 문서가 준비가 된경우 해당 Repo의 github ui에서 커밋된 정보가 있다는 문구와 "),e("code",[t._v("Contribute")]),t._v("를 클릭하여 "),e("code",[t._v("Pull request")]),t._v("를 진행 할 수 있습니다. "),e("code",[t._v("Open pull request")]),t._v("를 클릭하여 Upstream Repo에 요청을 보냅니다.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(564),alt:"Pull request"}})]),t._v(" "),e("p",[t._v("Pull request를 생성하면 본인 소유의 Repo(Branch)로 부터 docmoa에 지금까지의 변경사항을 병합할 것을 요청할 수 있습니다.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Tips")]),t._v(" "),e("p",[t._v("상단에 표기되는 repo의 방향과 branch를 다시한번 확인해주세요."),e("br"),t._v("\n아래 어떤 항목이 어떻게 변경되는지 내용을 확인할 수 있습니다.")])]),t._v(" "),e("p",[e("img",{attrs:{src:a(565),alt:"create pr"}})]),t._v(" "),e("p",[e("code",[t._v("Create pull request")]),t._v(" 버튼을 클릭하면 디테일한 설명을 추가할 수 잇습니다. 문서 자체의 변경사항만으로 의도를 전달하기 힘든경우 해당 설명이 이해하는데 큰 도움이 됩니다.")]),t._v(" "),e("p",[e("img",{attrs:{src:a(566),alt:"create pr detail"}})]),t._v(" "),e("p",[t._v("이제 Pull request가 받아들여지고나면 docmoa에 기여해주신 내용이 반영됩니다.")]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("Build 주기")]),t._v(" "),e("p",[t._v("2021년 10월 4일 기준 매 5분마다 변경사항이 있으면 docmoa의 빌드가 수행됩니다.")])])],1)}),[],!1,null,null,null);s.default=n.exports}}]);