관리 메뉴

kimgusxo 님의 블로그

4. 깃허브(Github)의 기본 기능 및 활용 본문

Git

4. 깃허브(Github)의 기본 기능 및 활용

kimgusxo 2025. 3. 27. 02:49

1. 깃허브(Github)란?

  • 깃허브는 깃(Git)을 기반으로 한 원격 저장소 호스팅 서비스이다.
  • 웹 기반 인터페이스를 통해 레포지토리를 관리하고 팀원들과 협업할 수 있는 다양한 기능(Pull Request, 코드 리뷰, 이슈 관리 등)을 제공한다.

 

1-1. 깃허브 주요 기능

  • 레포지토리 생성 및 관리: 프로젝트 파일과 변경 이력을 웹 상에서 관리한다.
  • 포크(Fork): 다른 사용자의 레포지토리를 내 계정으로 복제하여 독자적으로 작업 가능
  • 풀 리퀘스트(Pull Request): 기능 브랜치의 변경사항을 메인 브랜치에 병합하기 전, 팀원 간 리뷰 및 토론 진행
  • 이슈 관리: 버그, 기능 개선 요청 등을 기록하고 추적한다.
  • 프로젝트 보드: 칸반 보드 등으로 작업 진행 상황을 시각화한다.

 

2. 로컬 저장소와 깃허브 연동

2-1. 원격 레포지토리 생성 및 연결

  • 깃허브 계정 생성 및 로그인: 깃허브 홈페이지(https://github.com/)에 접속하여 계정을 생성하고 로그인한다.
  • 새 레포지토리 생성: 우측 상단의 New Repository 버튼을 눌러 레포지토리 이름, 설명, 공개/비공개 여부 등을 설정한 후 Create Repository를 통해 새 레포지토리를 생성한다.
  • 로컬 저장소에 원격 저장소 연결: Code 버튼을 눌러 저장소 주소를 복사하고 명령어를 통해 원격 저장소를 연결한다.
git remote add origin https://github.com/YourUsername/YourRepository.git
  • 원격 저장소를 확인하려면
git remote -v

 

2-2. 원격 저장소와 동기화하기

  • 원격 저장소에 파일이 있는 경우 로컬에 해당 파일을 내려받아야 한다.
  • 원격 저장소(origin)의 main 브랜치에 있는 최신 파일과 변경 사항을 로컬 저장소에 병합한다.
  • 풀(Pull) 명령어는 git fetch(원격의 변경사항을 가져오기)와 git merge(로컬 브랜치와 병합)을 한번에 수행한다. 
git pull origin main

 

2-3. 로컬 작업 결과 푸쉬하기

  • 커밋 후 푸쉬: 로컬에서 작업한 내용을 원격 저장소에 업로드한다.
  • 기본 브랜치가 main인 경우, 초기 푸쉬 시 -u 옵션으로 추적 정보를 설정한다.
git push -u origin main

 

  • 변경 사항이 있을 때마다 푸쉬: 작업을 진행한 후 커밋하고 명령어를 실행하면 최신 상태가 원격 저장소에 반영된다.
git push

 

3. 깃허브의 협업 기능 활용

3-1. 포크(Fork)

  • 다른 사용자의 레포지토리를 내 계정으로 복제하여 독자적으로 작업 할 수 있는 기능이다.
  • 오픈 소스 기여 시 주로 사용되며 포크한 레포지토리는 원본과 독립적으로 관리된다.

 

3-2. 클론(Clone)

  • 포크 또는 기존 레포지토리를 내 로컬 환경으로 복제하여 작업할 때 사용한다.
git clone https://github.com/YourUsername/YourRepository.git

 

3-3. 풀 리퀘스트(Pull Request)

  • 기능 브랜치에서 작업한 내용을 메인 브랜치에 병합하기 전 코드 리뷰와 토론을 진행하기 위한 절차이다.
  • 풀 리퀘스트 절차
    • 1. 기능 브랜치에서 작업 완료 후 원격 저장소에 푸쉬한다.
    • 2. 깃허브 웹사이트에서 해당 레포지토리의 Pull Request 탭을 클릭하고 새로운 PR을 생성한다.
    • 3. PR 제목과 설명을 작성하고 팀원들의 리뷰를 요청한다.
    • 4. 리뷰어들이 코드를 검토한 후 승인되면 PR을 병합한다.

 

3-4. 이슈(Issue) 관리

  • 버그, 기능 요청, 질문 등을 이슈로 등록하여 팀 내 공유 및 관리 할 수 있다.
  • 라벨(Label): 이슈 유형, 우선순위 등을 구분한다.
  • 마일스톤(Milestone): 특정 목표나 릴리즈 버전과 연계한다.
  • 담당자(Assignee): 책임자를 지정하여 작업 분담을 명확히 한다.

 

4. 협업 시 권장 사항

  • 정기적인 동기화: 로컬 작업 후 주기적으로 원격 저장소와 동기화(Push/Pull)하여 최신 상태를 유지한다.
  • 의미 있는 커밋 메세지 작성: 각 커밋에는 "무엇을, 왜" 변경했는지를 명확히 기록하여 협업 시 히스토리를 쉽게 이해할 수 있도록 한다.
  • 브랜치 관리: 작업 단위별로 브랜치를 분리하여 관리하고 작업 완료 후 Pull Request를 통해 검토 후 병합하는 프로세스를 유지한다.
  • 문서화 및 README 관리: 프로젝트의 사용법, 설치 방법, 주요 변경사항 등을 README와 Wiki에 정리하여 팀원 및 외부 기여자가 쉽게 이해할 수 있도록 한다.
  • CI/CD 도구 연동: Github Action이나 다른 CI/CD 도구를 연동하면 자동화된 빌드, 테스트, 배포 파이프라인을 구축할 수 있어 협업 효율이 높아진다.