
팀 프로젝트를 위해 GitHub Organization에서 각자의 레포지토리(FE, BE, AI)를 만들어서 작업을 하게 되었다.
프론트엔드 레포지토리(FE)를 Vercel로 배포하려고 하니, GitHub Organization에서 배포하려면 Vercel Pro 플랜이 필요하다는 알림창이 떴다.
GitHub Organization의 레포지토리는 Vercel의 무료 플랜(Hobby)으로는 직접 배포할 수 없다고 한다.
이 문제를 해결하는 방법은 크게 3가지가 있다.
Pro Trial 14일 체험 시작
Pro Trial - Free for two weeks을 선택해서 14일 무료 체험으로 배포할 수 있다.hj's projects 팀을 업그레이드해서 사용하는 방식이다.Organization 소유자가 Pro 팀 생성 후 연결
Capstone2-Tranner)을 Pro 플랜으로 전환하고 그 팀에서 배포할 수 있다.개인 GitHub 저장소로 복사해서 배포
Capstone2-Tranner/FE를 포크하거나 클론해서 개인 계정(hj7321)의 레포지토리로 복사GitHub Organization 레포지토리를 개인 계정으로 옮겨서 Vercel에 무료(Hobby)로 배포하는 방법은 총 2가지가 있다.
포크(Fork)하는 방법
개념
방법
Capstone2-Tranner/FE 레포지토리 페이지로 이동hj7321) 선택 → 자동으로 hj7321/FE 레포지토리 생성됨
장점
단점

클론(Clone)하는 방법
개념
방법
빈 폴더에 원본 클론 (VSCode 터미널에 입력)
git clone https://github.com/Capstone2-Tranner/FE.git .
기존 origin 삭제 & 새 origin 설정 (VSCode 터미널에 입력)
git remote remove origin
git remote add origin https://github.com/hj7321/FE.git
❓ origin이란?
- Git에서 현재 연결된 기본 원격 저장소(Remote Repository)를 의미함
- 보통
git clone했을 때 자동으로 연결되는 리모트 주소임- 예를 들어 다음 명령어로 클론하면
이때 Git은 내부적으로 이렇게 저장함git clone https://github.com/hj7321/FE.gitorigin → https://github.com/hj7321/FE.git
❓
git remote remove origin을 하는 이유내가 원래 작업하던 레포는 Capstone2-Tranner/FE였고, 그걸 clone 한 게 아니라 폴더를 그냥 만들었거나 다른 방식으로 연결했을 때 Git이 연결된
origin을 잘못 알고 있을 수 있음
💡 remove/add가 필요한 상황
상황 remove/add 필요 여부 Capstone2 조직 레포를 직접 clone 했을 때 ✅ 필요함 (origin이 조직으로 돼 있으니까 바꿔야 함) 내가 내 포크(hj7321)를 clone 했을 때 ❌ 필요 없음 (이미 origin이 내 레포로 되어 있음)
GitHub에서 개인 레포지토리 생성 (비어 있는 레포지토리)
hj7321/FE와 같이 새 저장소(레포지토리) 만들기.gitignore는 체크 해제 (비어 있어야 푸시됨)푸시
git push -u origin main
장점
단점
계속 개발 중인 협업 상태라면 포크(Fork) 방식이 훨씬 나은 선택이다.
그 이유는 다음과 같다.
| 항목 | 설명 |
|---|---|
| 원본과 연결 유지 | 포크하면 Capstone2-Tranner/FE 원본과 연결된 상태로 내 개인 계정에 복사됨 |
| 원본 업데이트 반영 가능 | git fetch upstream → git merge로 최신 상태를 유지하면서 개발 가능 |
| 기여 방식 그대로 유지 가능 | 개인 레포지토리에서 개발 후 Pull Request(PR)을 보내서 원본 프로젝트에 반영 요청 가능 |
| 협업 흐름 자연스러움 | 조직에서 공동 개발 중일 경우, 개인 브랜치처럼 활용 가능 |
PR이 필요한 경우 vs. 안 해도 되는 경우
| 상황 | PR 필요 여부 | 설명 |
|---|---|---|
| 조직 레포에 내 코드 반영하고 싶다 | ✅ 필요함 | 포크한 후 PR을 통해 원본에 코드 merge 요청 |
| 그냥 개인적으로 실험/배포만 한다 | ❌ 필요 없음 | 원본에서 포크만 하고 내 계정에서는 배포/수정만 해도 무방함 |
나의 상황
Capstone2-Tranner/FE는 팀 프로젝트이고,나의 정확한 상황
Capstone2-Tranner/FE)가 진짜 개발 소스hj7321)에 포크한 레포지토리를 가지고 있음그렇다면 내 개인 포크 레포는 어떻게 계속 최신 상태로 유지할까?
➡️ 바로 여기서 필요한 게 upstream remote 설정이다.
upstream은 이 포크의 진짜 원본(=조직 레포)을 가리키는 별명(remote 이름)이다.- upstream remote 설정이란 Git에서 내 포크가 원래 복사해온 원본 레포와 연결되는 주소를 등록하는 것을 말한다.
# 1. 내 포크 레포를 현재 폴더에 클론함 (처음 등록할 때 한 번만 입력하면 됨)
git clone https://github.com/hj7321/FE.git .
# 2. 원본 조직 레포를 upstream으로 등록함 (처음 등록할 때 한 번만 입력하면 됨)
git remote add upstream https://github.com/Capstone2-Tranner/FE.git
# 3. 조직 레포의 최신 내용을 가져옴
git fetch upstream
# 4. 내가 쓰는 브랜치(main)에 병합함
git checkout main
git merge upstream/main
# 5. 최신 코드 Vercel에 반영함
git push origin main
이렇게 하면 포크한 레포도 최신 상태로 계속 유지할 수 있다.
| 이름 | 뜻 |
|---|---|
origin | 내 포크된 GitHub 레포 (hj7321/FE) |
upstream | 조직의 원본 레포 (Capstone2-Tranner/FE) |
내 워크플로우 요약
Capstone2-Tranner/FE : 원래 개발하던 조직 레포
git push로 업데이트hj7321/FE : 내 포크 레포
# 내 포크된 작업 디렉토리에서 아래만 반복
git fetch upstream
git checkout main
git merge upstream/main
git push origin main이 방식으로 배포해도 문제 없는 이유
| 이유 | 설명 |
|---|---|
| Vercel은 내 포크 레포만 바라봄 | Vercel은 그냥 GitHub의 특정 레포지토리 코드를 배포할 뿐이다. |
| 내가 최신 코드만 잘 가져오면 됨 | git fetch upstream과 git merge로 동기화만 해주면 OK! |
| 코드 동작은 같음 | 포크라고 해서 코드 내용이나 동작이 달라지는 게 아님 |
원본 조직 레포를 upstream으로 등록한 후에는 다음 작업을 반복하면 된다.
조직 레포에서 작업하고 push
git push origin main
➡️ 조직 레포(Capstone2-Tranner/FE)에 최신 코드가 올라감
개인 레포(포크한 레포)에서 최신 코드 반영
# 1. 조직 레포에서 최신 코드 가져오기
git fetch upstream
# 2. 내 로컬 main 브랜치로 병합하기
git checkout main
git merge upstream/main
# 3. (옵션) Vercel 배포를 위해 내 포크 레포에도 푸시
git push origin main
➡️ 위 명령어를 차례대로 입력하면 개인 레포가 최신화됨