[GitHub] 깃허브 기여하기 - Fork, Pull Request(PR)

2024. 10. 15. 01:38·etc
728x90

GitHub의 Fork는 다른 사용자의 공개 저장소(Repository)를 복제하여 자신의 계정으로 가져오는 기능이다. 주로 오픈소스 프로젝트에 기여하거나 원본 코드를 활용해 독립적인 프로젝트를 만들 때 사용한다. Fork는 단순히 복사본을 만드는 것뿐 아니라 원본 저장소와 연결되어 있어 협업에도 유리하다.

 

Fork의 주요 목적과 특징

 

  1. 오픈소스 프로젝트에 기여
    • 원본 저장소에서 직접 권한을 받지 않아도, 자신의 Fork에서 수정한 후 Pull Request를 통해 코드 변경 사항을 제안할 수 있음
  2. 독립적인 개발
    • 기존 프로젝트를 기반으로 자신만의 기능을 추가하거나 새로운 방향으로 개발할 수 있음
    • 예를 들어 UI를 커스터마이징하거나 기능을 확장하는 데 활용됨
  3. Fork와 원본 저장소의 연동
    • Fork한 저장소를 계속해서 업데이트하기 위해 원본 저장소와 동기화(Sync)하거나 업데이트를 병합(Merge)할 수 있음
  4. Pull Request로 협업
    • 수정 사항을 원본 프로젝트에 반영하고자 할 때, Fork한 저장소에서 작업을 마친 후 원본 저장소에 Pull Request를 보냄
    • 원본 저장소의 관리자나 기여자들이 이를 리뷰하고 반영할지 결정할 수 있음

 

Fork를 통한 작업 프로세스

 

1. Fork

 

 

 

원본 저장소를 자신의 GitHub 계정으로 Fork한다.

 

2. Fork한 저장소를 로컬로 Clone

 

 

Fork한 저장소를 로컬 내 원하는 위치에 클론한다.

git clone "github repo 주소"

 

3. 새로운 브랜치 생성

 

 

main 브랜치에서 직접 작업하기보다는 기능별로 새 브랜치를 만드는 것이 좋다.

git checkout -b new_branch_name

 

브랜치를 만드는 이유는 여러 기능이나 버그 수정을 병렬로 작업할 수 있고, 다른 팀원과 코드 충돌을 최소화할 수 있으며, 마지막으로 원본 저장소에 Pull Request를 보낼 때, 작업의 범위가 명확해지기 때문이다.

 

4. 코드 수정 및 커밋

 

 

로컬에서 필요한 코드 수정을 하고 커밋한다.

git add .
git commit -m "커밋 내용"

 

5. Fork한 저장소의 브랜치에 Push

 

git push origin new_branch_name

6. 원본 저장소에 Pull Request 보내기

 

 

GitHub 웹사이트에서 Fork한 저장소의 해당 브랜치로 이동한 후, 원본 저장소로 Pull Request를 요청한다! 이때 PR을 보낼 때 원본 저장소의 main 브랜치와 비교하여 확인하는 것이 중요하다.

728x90
저작자표시 비영리 변경금지 (새창열림)

'etc' 카테고리의 다른 글

[GitHub] master branch를 main branch로 변경하기  (0) 2024.11.22
[GitHub] 깃허브 시작하기 - Repository 생성  (4) 2024.09.19
[OS] - Thread 스레드에 대해 알아보자  (1) 2024.03.10
[GitHub] MacOS 업데이트 후 Git 에러가 발생할 때 (xcrun: error)  (0) 2022.03.13
'etc' 카테고리의 다른 글
  • [GitHub] master branch를 main branch로 변경하기
  • [GitHub] 깃허브 시작하기 - Repository 생성
  • [OS] - Thread 스레드에 대해 알아보자
  • [GitHub] MacOS 업데이트 후 Git 에러가 발생할 때 (xcrun: error)
100두산
100두산
출발하게 만드는 힘이 동기라면, 계속 나아가게 만드는 힘은 습관이다.
  • 100두산
    정상에서 보자 ✈️
    100두산
  • 전체
    오늘
    어제
    • 분류 전체보기 (126)
      • Life (6)
        • living (1)
      • Research (6)
      • AI (20)
      • Dev (45)
        • iOS (28)
        • Web (4)
        • flutter (9)
        • etc (4)
      • PS (Problem Solving) (23)
      • Computer Science and Engine.. (21)
        • Data Structures and Algorit.. (13)
        • OOP (Object Oriented Progra.. (8)
      • etc (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    티스토리챌린지
    D3
    PS
    Challenger
    swift
    xcode
    Python
    SKTelecom
    SKT
    알고리즘
    AI
    백준
    c++
    자료구조
    백트래킹
    오블완
    ios
    BOJ
    TIP
    파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
100두산
[GitHub] 깃허브 기여하기 - Fork, Pull Request(PR)
상단으로

티스토리툴바