Skip to content

Latest commit

 

History

History
177 lines (143 loc) · 11.2 KB

03. 깃허브 프로젝트 기여 방법.md

File metadata and controls

177 lines (143 loc) · 11.2 KB

03-1. 기여 개요

이 문서는 GitHub 프로젝트에 기여하는 방법을 안내합니다. GitHub를 통해 전 세계의 개발자들이 함께 소스 코드를 공유하고, 수정하며, 개선할 수 있습니다. 여러분의 기여는 프로젝트의 품질을 향상시키고, 더 많은 사용자들에게 유용한 도구를 제공하는 데 큰 도움이 될 것입니다.

03-2. 기여 전 준비 사항

GitHub 계정 생성

  1. GitHub 웹사이트에 접속합니다.
  2. 화면 오른쪽 상단의 Sign up 버튼을 클릭합니다.
  3. 이메일 주소, 비밀번호, 사용자 이름을 입력하고 Create account 버튼을 클릭합니다.
  4. 이메일 인증을 완료하고, 프로필 설정을 마칩니다.

프로젝트 포크(Fork) 및 클론(Clone)

  1. 기여하고자 하는 GitHub 프로젝트의 저장소 페이지로 이동합니다.

  2. 화면 오른쪽 상단의 Fork 버튼을 클릭하여 자신의 GitHub 계정으로 저장소를 복사합니다.

  3. 포크한 저장소 페이지로 이동하여, Code 버튼을 클릭하고, 'HTTPS' URL을 복사합니다.

  4. 원하는 폴더에서 깃 배시를 열고, 다음 명령어를 입력하여 저장소를 클론합니다:

    git clone '복사한 URL'

03-3. 이슈 작성

이슈란 무엇인가?

이슈는 프로젝트에서 발생하는 문제점이나 개선 사항을 기록하는 도구입니다. 이슈를 통해 프로젝트의 버그를 보고하거나 새로운 기능을 제안할 수 있습니다. 이슈는 프로젝트의 진행 상황을 추적하고, 기여자들 간의 협업을 촉진하는 데 중요한 역할을 합니다.

이슈 작성 방법

  1. 프로젝트의 GitHub 저장소 페이지로 이동합니다.
  2. 상단 메뉴에서 Issues 탭을 클릭합니다.
  3. New Issue 버튼을 클릭하여 새로운 이슈를 작성합니다.
  4. 이슈의 제목과 내용을 입력합니다. 가능한 한 구체적으로 문제를 설명하고, 재현 방법이나 스크린샷을 첨부하면 도움이 됩니다.
  5. 필요한 경우, 이슈에 라벨(Label)을 추가하여 이슈의 유형을 명확히 합니다.
  6. Submit new issue 버튼을 클릭하여 이슈를 제출합니다.

이슈 작성 시 주의사항

  • 이슈 템플릿 사용: 일부 프로젝트는 이슈 템플릿을 제공하여 이슈 작성 시 필요한 정보를 쉽게 입력할 수 있도록 돕습니다. 적절한 이슈 템플릿을 사용하면 이슈 작성이 더 간편해지고, 필요한 정보가 빠짐없이 포함될 수 있습니다.
  • README 및 CONTRIBUTING 파일에서 지침 확인: 이슈를 작성하기 전에 프로젝트 관리자가 정해놓은 지침을 확인하는 것은 중요합니다. 이는 프로젝트의 일관성을 유지하고, 기여자들이 프로젝트의 규칙을 준수하도록 돕기 위해서입니다.

Note

지침 확인 방법

  1. 프로젝트의 GitHub 저장소 페이지로 이동합니다.
  2. 저장소의 루트 디렉토리, docs 디렉토리, 또는 .github 디렉토리에서 CONTRIBUTING.md 파일을 찾습니다.
  3. CONTRIBUTING.md 파일을 열어 프로젝트에 기여하는 방법에 대한 지침을 확인합니다. 이 파일에는 이슈 작성, 코드 스타일, 커밋 메시지 규칙 등 기여와 관련된 중요한 정보가 포함되어 있을 수 있습니다.
  4. 이슈 페이지 상단이나 README.md 파일에서 이슈 작성에 대한 추가 지침을 확인합니다.
  5. 프로젝트 관리자가 이슈 작성에 대한 특정 규칙이나 제한을 명시해 놓은 경우, 해당 지침을 따릅니다.
  6. 필요한 경우, 프로젝트 관리자에게 문의하여 이슈 작성에 대한 추가 정보를 얻습니다.

03-4. 브랜치 생성 및 관리

브랜치란 무엇인가?

브랜치는 독립적인 작업 공간을 제공하여, 원본 코드에 영향을 주지 않고 새로운 기능을 개발하거나 버그를 수정할 수 있게 합니다. 이를 통해 여러 개발자가 동시에 다양한 작업을 수행할 수 있습니다.

브랜치 생성 방법

  1. 프로젝트의 로컬 저장소에서 깃 배시를 엽니다.

  2. 다음 명령어를 입력하여 새로운 브랜치를 생성합니다:

    git checkout -b 브랜치이름

    예: git checkout -b feature/new-feature

브랜치 관리 전략

  1. 주기적인 병합(Merge): 작업 중인 브랜치를 주기적으로 메인 브랜치와 병합하여, 최신 변경 사항을 반영하고 충돌을 최소화합니다.

  2. 브랜치 삭제: 작업이 완료된 브랜치는 삭제하여 저장소를 깔끔하게 유지합니다. 다음 명령어를 사용하여 로컬 브랜치를 삭제할 수 있습니다:

    git branch -d 브랜치이름

    예: git branch -d feature/new-feature

  3. 브랜치 이름 규칙: 브랜치 이름은 작업 내용을 명확히 나타내도록 규칙을 정해 사용합니다. 예를 들어, 새로운 기능 개발은 feature/기능이름, 버그 수정은 bugfix/버그이름과 같이 명명합니다.

03-5. 코드 수정 및 커밋

코드 수정 방법

  1. 깃 배시를 열고, 프로젝트의 로컬 저장소 디렉토리로 이동합니다.

  2. 수정하고자 하는 파일을 텍스트 에디터 또는 IDE에서 엽니다.

  3. 필요한 코드를 수정합니다.

  4. 수정이 완료되면, 터미널에서 다음 명령어를 입력하여 변경 사항을 확인합니다:

    git status

커밋 메시지 작성 규칙

  1. 변경 사항을 스테이징합니다:

    git add 파일이름

    예: git add example.py

  2. 의미 있는 커밋 메시지를 작성합니다:

    git commit -m "커밋 메시지"

    예: git commit -m "Fix bug in user authentication"

  3. 커밋 메시지는 변경 사항을 간결하고 명확하게 설명해야 합니다. 일반적으로 다음과 같은 형식을 따릅니다:

    • 제목: 50자 이내로 간결하게 작성
    • 본문: 필요할 경우, 변경 사항에 대한 자세한 설명을 추가 (72자 이내로 줄바꿈)

커밋 히스토리 관리

  1. 커밋 히스토리를 깔끔하게 유지하기 위해, 관련된 변경 사항을 하나의 커밋으로 묶습니다.
  2. 불필요한 커밋을 피하고, 의미 있는 단위로 커밋을 나눕니다.
  3. 커밋 메시지를 일관성 있게 작성하여, 히스토리를 쉽게 이해할 수 있도록 합니다.

03-6. 푸시(Push) 및 풀 리퀘스트(Pull Request)

푸시 방법

  1. 깃 배시를 열고, 프로젝트의 로컬 저장소 디렉토리로 이동합니다.

  2. 다음 명령어를 입력하여 변경 사항을 원격 저장소에 푸시합니다:

    git push origin 브랜치이름

    예: git push origin feature/new-feature

풀 리퀘스트 생성 방법

  1. 포크한 저장소의 GitHub 페이지로 이동합니다.
  2. 화면 상단의 Contribute 버튼을 클릭합니다.
  3. 드롭다운 메뉴에서 Open pull request를 선택합니다.
  4. 변경 사항에 대한 제목과 설명을 입력합니다. 가능한 한 구체적으로 변경 사항을 설명하고, 필요한 경우 스크린샷이나 추가 정보를 첨부합니다.
  5. Create pull request 버튼을 클릭하여 풀 리퀘스트를 제출합니다.

풀 리퀘스트 템플릿 사용

일부 프로젝트는 풀 리퀘스트 템플릿을 제공하여 풀 리퀘스트 작성 시 필요한 정보를 쉽게 입력할 수 있도록 돕습니다. 풀 리퀘스트 템플릿을 사용하면 풀 리퀘스트 작성이 더 간편해지고, 필요한 정보가 빠짐없이 포함될 수 있습니다.

03-7. 코드 리뷰 및 병합

코드 리뷰 절차

  1. 풀 리퀘스트 생성: 변경 사항을 포함한 풀 리퀘스트를 생성합니다.
  2. 리뷰어 지정: 프로젝트 관리자가 리뷰어를 지정하거나, 기여자가 리뷰어를 요청할 수 있습니다.
  3. 코드 리뷰: 리뷰어는 풀 리퀘스트를 검토하고, 코드의 품질, 일관성, 기능성을 확인합니다. 필요한 경우, 코드 개선을 위한 피드백을 제공합니다.
  4. 피드백 반영: 기여자는 리뷰어의 피드백을 반영하여 코드를 수정하고, 다시 푸시합니다.
  5. 추가 리뷰: 수정된 코드에 대해 추가 리뷰가 필요할 경우, 리뷰어가 다시 검토합니다.

피드백 반영 방법

  1. 피드백 확인: 리뷰어가 제공한 피드백을 확인합니다.

  2. 코드 수정: 피드백을 반영하여 코드를 수정합니다.

  3. 커밋 및 푸시: 수정된 코드를 커밋하고, 원격 저장소에 푸시합니다.

    git add 수정된파일
    git commit -m "리뷰 피드백 반영"
    git push origin 브랜치이름
  4. 코멘트 추가: 필요한 경우, 풀 리퀘스트에 코멘트를 추가하여 리뷰어에게 수정 사항을 알립니다.

병합(Merge) 방법

  1. 리뷰 완료: 모든 리뷰어가 코드 리뷰를 완료하고, 승인합니다.

  2. 병합 준비: 병합 전에 최신 변경 사항을 반영하기 위해 메인 브랜치와 병합합니다.

    git checkout main
    git pull origin main
    git checkout 브랜치이름
    git merge main
  3. 병합: 풀 리퀘스트 페이지에서 "Merge pull request" 버튼을 클릭하여 변경 사항을 메인 브랜치에 병합합니다.

  4. 브랜치 삭제: 병합이 완료된 후, 작업이 완료된 브랜치를 삭제합니다.

    git branch -d 브랜치이름
    git push origin --delete 브랜치이름

03-8. 기여자 가이드라인

코드 스타일 가이드

  1. 일관성 유지: 프로젝트의 코드 스타일 가이드를 준수하여 일관된 코드 스타일을 유지합니다. 이는 코드의 가독성을 높이고, 유지보수를 용이하게 합니다.
  2. 주석 작성: 코드의 중요한 부분이나 복잡한 로직에는 주석을 추가하여 다른 기여자들이 코드를 이해하기 쉽게 합니다.
  3. 코드 포맷팅: 코드 포맷팅 도구(예: Prettier, ESLint 등)를 사용하여 일관된 코드 포맷을 유지합니다.

기여자 행동 강령

  1. 존중과 배려: 모든 기여자는 서로를 존중하고 배려하는 태도로 협업합니다. 비판은 건설적으로 하고, 개인적인 공격은 피합니다.
  2. 포용성: 다양한 배경과 경험을 가진 사람들이 기여할 수 있도록 포용적인 환경을 조성합니다.
  3. 투명성: 프로젝트의 진행 상황과 의사결정 과정을 투명하게 공유합니다.

문서화 및 주석 작성

  1. 문서화: 새로운 기능이나 중요한 변경 사항은 문서화하여 다른 기여자들이 쉽게 이해할 수 있도록 합니다. README 파일이나 위키 페이지를 활용하여 문서를 작성합니다.
  2. 주석 작성: 코드의 중요한 부분이나 복잡한 로직에는 주석을 추가하여 다른 기여자들이 코드를 이해하기 쉽게 합니다.
  3. 예제 코드: 문서화 시 예제 코드를 포함하여 사용 방법을 명확히 설명합니다.