[ English | Indonesia | 한국어 (대한민국) | español (México) | English (United Kingdom) | Deutsch | 中文 (简体, 中国) ]

설정과 GIT 배우기

참고

이 섹션에서는 계정 설정 guide를 완료했다고 가정합니다.

GIT

GIT이란 무엇인가

Git은 OpenStack 커뮤니티가 소스 코드 및 설명서의 변경 사항을 관리하는 데 사용하는 무료 오픈 소스 분산 버전 제어 시스템입니다.

Git은 다음과 같은 이점을 제공합니다.

설치

Mac OS

  1. Git 다운로드 페이지 으로 이동하여 Mac OS X 를 클릭합니다.

  2. 다운로드한 파일은 다운로드 폴더의 dmg여야 합니다. dmg 파일을 열고 화면의 지침을 따르십시오.

패키지 관리자 Homebrew 을 사용하는 경우 터미널을 열고 다음을 입력하십시오.

brew install git

리눅스

Debian, Ubuntu 또는 Mint와 같은 배포의 경우 터미널을 열고 다음을 입력하십시오.

sudo apt install git

For distributions like RedHat, Fedora or CentOS open a terminal and type:

sudo dnf install git

SUSE 배포의 경우 터미널을 열고 다음을 입력하십시오.

sudo zypper in git

윈도우즈

WSL(Windows Subsystem for Linux) 은 Windows 10 Anniversity Update(빌드 1607+) 이상에서 사용할 수 있습니다. 최신 Linux 운영 체제를 설치하고 실행할 수 있습니다.

bash, git, SSH와 같은 모든 일반적인 툴은 즉시 사용할 수 있습니다.

Git 다운로드 페이지 은 Windows 설치 바이너리를 제공하지만 대부분의 OpenStack 개발 도구(예: git-review)는 Windows 환경에서 제대로 작동하지 않습니다.

GIT 설정

Git를 설치한 후에는 Git을 구성해야 합니다. 터미널 응용 프로그램을 열고 이름/성 및 전자 메일 주소를 입력하는 다음 명령을 실행합니다. 다음과 같은 방법으로 공헌을 확인할 수 있습니다.

git config --global user.name "Firstname Lastname"
git config --global user.email "your_email@youremail.com"

참고

계정 설정 중에 사용된 것과 동일한 전자 메일 주소를 사용합니다.

GIT 학습

You can use Git Immersion to work through tutorials for learning git.

참고로 Git Reference and Cheat Sheet 을 사용합니다.

커밋 메시지

커밋 메시는 검토자가 가장 먼저 보고 git 로그의 설명으로 사용됩니다. 저장소의 변경 내역에 대한 설명을 제공합니다. 패치가 병합된 후에는 커밋 메시지를 수정할 수 없습니다.

포맷:

  • 요약

  • 공백

  • 본문

  • 공백

  • 바닥글

참고

바닥글 사이에 빈 줄이 없이 한 줄에 하나씩 입력해야 합니다.

요약

요약 줄에는 패치 내용이 간략하게 설명되어 있습니다. 문자 제한은 50자입니다. 요약 줄은 마침표로 끝나서는 안 됩니다. 커밋 시점에 변경이 완료되지 않은 경우 WIP로 커밋 메시지를 시작합니다.

본문

본문에는 해결 중인 문제와 해결되어야 하는 이유에 대한 설명, 솔루션에 대한 설명, 그리고 코드 구조를 개선하는 방법에 대한 추가 선택적 정보 또는 기타 관련 패치에 대한 참조가 포함되어 있습니다. 줄은 72자로 제한됩니다. 본문은 독자가 문제의 근원을 이해하거나 외부 사이트에 액세스할 수 있다고 가정하지 않고 문제와 관련된 모든 중요한 정보를 포함해야 합니다.

바닥글

바닥글은 커밋 메시지의 마지막 단락에 있는 선으로, 변경사항을 다른 도구에 연결하는 데 사용됩니다.

다음 바닥글이 필요합니다.

  • Change-ID 라인은 Git 커밋 후크에 의해 처음 커밋 메시지를 저장할 때 자동으로 생성되는 변경을 설명하는 고유한 해시입니다. 이는 Gerritt에서 패치 버전을 추적하기 위해 사용되므로 검토 피드백에 따라 커밋을 다시 작성할 때 변경되지 않아야 합니다. 새 커밋 메시지를 처음 편집할 때는 표시되지 않지만 나중에 `` –amend`` 를 커밋 하면 표시됩니다.

StoryBoard별 바닥글은 다음과 같습니다.

  • Task: 1234: the number of the task in Storyboard implemented by the change. This will auto update the task to ‘Review’ status and assign it to you when you push the patch.

  • Story: 1234567: the number of the story in Storyboard to which the task being implemented belongs. This will post a comment on the story with a link to your patch.

런치패드별 바닥글은 다음과 같습니다.

  • Closes-Bug: #123456789: use Closes-Bug if the commit is intended to fully fix and close the bug being referenced. Use the Launchpad ID of the bug for the number; Gerrit automatically creates a link to the bug.

  • Partial-Bug: #123456789: use Partial-Bug if the commit is only a partial fix and more work is needed. Use the Launchpad ID of the bug for the number; Gerrit automatically creates a link to the bug.

  • Related-Bug: #12456789: use Related-Bug if the commit is merely related to the referenced bug. Use the Launchpad ID of the bug for the number; Gerrit automatically creates a link to the bug.

  • Partial-Implements : 변경 사항으로 인해 Launchpad Blueprint가 부분적으로 구현되는 경우 이 바닥글을 사용합니다. Blueprint 이름을 ID로 사용합니다.

  • Implements : 변경 내용이 Launchpad Blueprint를 완전히 구현한 경우 이 바닥글을 사용합니다. Blueprint 이름을 ID로 사용합니다.

다음 바닥글은 선택 사항이지만 패치에 적용할 수 있는 경우 사용하는 것이 좋습니다.

  • DocImpact 바닥글에는 변경사항이 문서에 영향을 미치는 이유에 대한 설명이 포함되어 있습니다. DocImpact를 직접 줄에 놓습니다. 이 바닥글을 사용하여 문서가 패치에 포함되어 있거나 문서에 영향을 미칩니다. 이 바닥글이 커밋 메시지에 포함되면 Gerritt는 작업 추적 변경의 영향을 받는 프로젝트에 대한 버그를 만들거나 필요에 따라 openstack-api-site 사이트로 이동합니다.

  • APIImpact 바닥글에는 이러한 변경이 공개 HTTP API에 영향을 미치는 이유에 대한 설명이 포함되어 있습니다. APIImpact를 그 자체로 한 줄에 놓으세요. 이 바닥글을 사용하여 패치가 공용 HTTP API에 영향을 미친다는 것을 나타냅니다. 이 바닥글이 커밋 메시지에 포함되면 API_Working_Group에서 해당 바닥글을 사용하여 관련 리뷰를 찾을 수 있습니다.

  • SecurityImpact 바닥글은 변경사항이 보안에 영향을 미치고 있음을 나타내기 위해 사용되며 OpenStack Security Group에서 검토해야 합니다.

  • UpgradeImpact 바닥글에는 이러한 변화가 업그레이드에 영향을 미치는 이유에 대한 언급이 포함되어 있습니다. 지속적인 배포 또는 N-N+1 업그레이드를 수행하는 사용자에게 변경 사항이 업그레이드에 영향을 미친다는 것을 나타내는 데 사용됩니다. 또한 영향을 받는 프로젝트의 릴리스 노트에 있는 ‘Notes 업그레이드’ 섹션을 업데이트하는 것도 고려합니다.

  • Depend-On : <gerrit-change-url> 바닥글은 현재의 변화가 의존하고 있는 변화를 가리키는 데 사용됩니다. 변경 사항의 퍼머링크를 사용합니다.