[Git] Fork

handa·2024년 11월 28일
0

1. 프로젝트 Fork

  1. GitHub에서 원하는 원본 저장소로 이동합니다.
  2. 저장소 페이지 우측 상단에 있는 Fork 버튼을 클릭합니다.
    • 이 작업은 원본 저장소를 자신의 GitHub 계정으로 복사하여 저장소를 생성합니다.
  3. Fork가 완료되면 자신의 GitHub 계정 아래에 복사된 저장소가 생성됩니다.

2. Fork된 저장소 클론

  1. Fork한 저장소 URL을 복사합니다.
    • 예: https://github.com/<your-username>/<repository-name>.git
  2. 로컬로 복사된 저장소를 클론합니다:
  git clone https://github.com/<your-username>/<repository-name>.git
  1. 저장소 디렉토리로 이동합니다:
cd <repository-name>

3. 원본 저장소(Remote) 추가

Fork한 저장소는 기본적으로 자신의 저장소만 연결되어 있으므로, 원본 저장소를 추가해야 합니다.
1. 원본 저장소를 upstream이라는 이름으로 추가

git remote add upstream https://github.com/<original-owner>/<repository-name>.git
  1. 제대로 추가되었는지 확인
git remote -v

출력
origin    https://github.com/<your-username>/<repository-name>.git (fetch)
origin    https://github.com/<your-username>/<repository-name>.git (push)
upstream  https://github.com/<original-owner>/<repository-name>.git (fetch)
upstream  https://github.com/<original-owner>/<repository-name>.git (push)

4. 브랜치 생성 및 작업

  1. 새로운 브랜치를 생성하고 해당 브랜치로 이동합니다
git checkout -b <branch-name>
  • 브랜치 이름은 작업 내용을 명확히 표현하는 이름을 추천합니다. 예: feature/add-login 또는 fix/typo-in-readme.
  1. 원하는 작업(코드 수정, 기능 추가 등)을 수행합니다.
  2. 변경된 파일을 확인
git status
  1. 변경된 파일을 스테이징
git add <file-name>  # 특정 파일만 추가
# 또는 모든 변경 파일 추가
git add .
  1. 변경 사항을 커밋
git commit -m "Add new feature"  # 커밋 메시지는 작업 내용을 간결히 설명

5. Fork된 저장소로 푸시

  1. 작업한 브랜치를 Fork된 저장소(origin)에 푸시합니다
git push origin <branch-name>

6. Pull Request(PR) 생성

  1. GitHub로 이동하여 Fork한 저장소로 들어갑니다.
  2. 작업한 브랜치에서 Pull Request 버튼 클릭:
    • "Compare & Pull Request" 또는 "New Pull Request"를 클릭.
  3. PR 제목과 설명을 작성합니다.
    • 제목: 변경 내용을 간략히 표현.
    • 설명: 작업한 내용을 상세히 기록하고, 추가로 검토자에게 필요한 내용을 적습니다.
  4. 대상 브랜치(원본 저장소)와 소스 브랜치(본인의 저장소)를 확인합니다:
    • Base Repository : 원본 저장소.
    • Head Repository : 본인의 Fork 저장소와 작업한 브랜치.
  5. Create Pull Request를 클릭하여 PR을 생성합니다.

7. 코드 리뷰 및 반영

  1. PR이 생성되면 원본 저장소 관리자가 검토를 시작합니다.
  2. 리뷰 요청을 받고 수정 사항이 있다면 작업한 브랜치에서 다시 수정 후 커밋하고 푸시합니다
git add .
git commit -m "Fix requested changes"
git push origin <branch-name>

PR에 수정 사항이 자동으로 반영됩니다


8. Fork 저장소와 원본 저장소 동기화(선택)

PR이 반영되었거나 원본 저장소가 업데이트되었을 경우, Fork한 저장소와 동기화를 유지하려면 다음 단계를 수행합니다
1. 원본 저장소(upstream)의 변경 내용을 가져옵니다

git fetch upstream
  1. 로컬 브랜치에 병합
git merge upstream/main
  1. 필요시 Fork된 저장소(origin)에도 푸시
git push origin main

---

profile
진짜 해보자

0개의 댓글