TIL - 20250514

juni·2025년 5월 14일

TIL

목록 보기
7/316

1. GitHub의 Collaborator

Collaborator의 권한
1. 코드 푸시: Collaborator는 소유자와 동일하게 repository에 직접적으로 코드를 푸시할 수 있습니다. 이는 Collaborator가 repository의 소스 코드를 본인의 로컬 시스템에 클론한 후, 코드 수정이나 추가 작업을 한 뒤에 그 변경 사항을 다시 원격 repository에 푸시할 수 있다는 것을 의미합니다.

  1. 이슈 관리: Collaborator는 repository의 이슈를 열고 닫을 수 있습니다. 이는 프로젝트의 오류 보고, 기능 추가 요청, 개선 사항 등을 관리하는 데 유용합니다.

  2. 풀 리퀘스트 관리: Collaborator는 풀 리퀘스트를 수락하거나 거절할 수 있습니다. 이는 프로젝트에 기여하려는 다른 사람들이 제출한 코드 변경 사항을 검토하고 결정하는 역할을 수행합니다.

  3. Wiki 및 페이지 관리: Collaborator는 프로젝트의 GitHub Pages 및 Wiki를 관리할 수 있습니다. 이는 프로젝트 문서 작성 및 유지 보수에 관여하는 역할을 수행합니다.

  • 클론을 하는데 내 폴더이름과 겹친다면 로컬폴더를 새로 만들어 두고 cd로 디렉토리 이동 후 git clone http://git~.com 맨 뒤에 . 붙이면
    파일만 복사해서 옴.

2. GitHub의 README.md 파일

README.md 파일은 GitHub repository의 시작점입니다. 이 파일은 일반적으로 프로젝트에 대한 정보와 사용 방법을 소개하는 데 사용됩니다.

  • README.md의 기능
  1. 프로젝트 설명: README.md 파일은 프로젝트의 목적과 기능에 대한 개요를 제공합니다. 이는 다른 사람들이 프로젝트의 주요 목표와 사용 방법을 빠르게 이해할 수 있도록 돕습니다.

  2. 설치 가이드: README.md 파일은 프로젝트를 어떻게 설치하고 사용할 수 있는지에 대한 지침을 제공할 수 있습니다. 이에는 필요한 의존성, 설치 과정, 구성 방법 등의 정보가 포함될 수 있습니다.

  3. 사용 방법: 이 파일은 프로젝트의 사용 방법에 대한 예제나 튜토리얼을 제공하는 데 사용될 수 있습니다. 이는 사용자들이 프로젝트를 최대한 활용할 수 있도록 돕습니다.

  4. 기여 가이드라인: README.md 파일은 다른 사람들이 프로젝트에 어떻게 기여할 수 있는지에 대한 지침을 제공할 수 있습니다. 이는 기여를 원하는 사람들이 프로젝트에 원활하게 참여할 수 있도록 돕습니다.

  5. 라이센스 및 저작권 정보: 이 파일은 프로젝트의 라이센스 정보와 저작권 정보를 명시하는 데 사용될 수 있습니다. 이는 사용자들이 프로젝트를 어떻게 사용할 수 있는지에 대한 법적 규정을 제공합니다.

3. Markdown

README.md 파일은 Markdown이라는 경량 마크업 언어로 작성됩니다. Markdown은 간단한 구문으로 텍스트를 서식화하고 HTML로 변환할 수 있습니다. 이는 README.md 파일을 읽기 쉽고 깔끔하게 보일 수 있게 해줍니다.

4. Git Workflow

  • Git 중앙집중형 워크플로우
    일반적으로 master 브랜치 하나만을 유지하며, 모든 변경사항을 이 브랜치에 푸시합니다.

  • Feature Branch Workflow
    Git의 "branch" 기능을 활용한 워크플로우 방식입니다. 이 방식에서는 각 기능 개발이나 이슈 해결을 위한 작업들이 별도의 브랜치에서 진행되고, 해당 작업이 완료되면 master 브랜치에 병합(merge)됩니다.

5. Pull Request(PR)

  • 새로운 브랜치를 원격 저장소에 푸시하고 피드백을 반영한 후, 리뷰어의 승인이 있으면 PR을 타겟 브랜치에 병합(merge)할 수 있다.
  • PR을 통해 코드의 품질을 유지하고 개선하며, 프로젝트의 안정성을 유지할 수 있습니다. 또한, PR을 통해 팀원들이 변경 사항을 인지하고 이해하는데 도움이 됩니다.

GitHub의 main branch 보호하기

  • 특정 repo에 들어가서 settings - rules -rulesets - new ruleset - new branch ruleset - add target - include default branch - require a pull request before merging 체크(인원수)
- 협업 시나리오

팀장
   1. 원격 저장소를 생성하고 README.md을 만든 커밋을 1개 생성한다.
   2. 팀원을 콜라보레이터로 초대한다.
   9. 자신의 원격저장소에서 PR탭을 확인한다. 
  10. 충분히 리뷰하고 코멘트하고 테스트해본다 
      -> 테스트는 해당 브랜치를 팀장이 로컬에 땡겨본 후 돌려본다. (fetch로 불러온 후 브랜치 스위치하면 메인브랜치 기반으로 만들어졌기에 바로 테스트 할 수 있음.)
   11. 커밋탭에서 review changes를 눌러 approve를 클릭
   12. merge pull request를 통해 해당 브랜치를 origin/main에 병합
    13. 해당 원격브랜치를 삭제

   팀원
   3. 해당 원격 저장소를 로컬컴퓨터로 클론한다.
   4. 새 브랜치를 생성하고 스위칭한다.
   5. 해당 브랜치에 충분히 작업내용을 커밋한다.
   6. 작업이 완료되면 해당 브랜치를 푸시한다.
   7. 깃허브로 가서  팀장의 원격 저장소에서 Pull Request를 생성한다.
   8. PR을 생성할 때 reviewer로 팀장을 태그한다.
  14. 로컬 main으로 전환후 origin/main을 pull한다.
   15. 병합완료된 로컬 피쳐브랜치를 제거

깃허브에서 삭제한 브랜치 -> 로컬에서 git fetch - -prune (로컬에선 브랜치가 없지만 origin/브랜치명 이 남아 있는걸 삭제)

6. GitHub의 Fork

  • Fork의 개념

Fork를 사용하면 원래 레포지토리의 권한 없이도 복제본을 자유롭게 수정하고 활용할 수 있습니다. 이렇게 만들어진 복제본은 원본 레포지토리와는 독립적으로 동작하며, 이를 통해 다음과 같은 일들을 할 수 있습니다.

  1. 프로젝트를 자신의 계정으로 가져와서 새로운 기능을 추가하거나 버그를 수정할 수 있습니다.
  2. 자신이 수정한 내용을 원본 레포지토리에 반영해달라고 Pull Request를 보낼 수 있습니다.

0개의 댓글