🏛️ [Archive] 개발 프로젝트 & 회고/GitHub 관리 도구 🛠️

🚀 Git 팀 협업을 위한 가이드

히주 2025. 2. 18. 22:48

안녕하세요 간만입니닷... 프로젝트 기간의 블로그 작성 사치를 부려봅니다.

 


 

🏠 기본 개념

  • 로컬 (Local) 🖥️: 내 컴퓨터에 있는 저장소
  • 오리진 (origin) 📦: 내가 포크한 GitHub 저장소
  • 업스트림 (upstream) 🌍: 팀의 원본 저장소

 

 

🔗 저장소 통합 (팀 단위 버전 관리 준비)

1️⃣ 팀 저장소 (업스트림) 포크하기 🍴

GitHub에서 팀 저장소를 포크하여 내 계정의 저장소로 복사

 

2️⃣ 내 저장소 클론하기 🛠️

git clone https://github.com/(내 저장소 이름)/(다운받을 저장소).git   # 내 저장소를 로컬로 내려받기
cd (다운받을 저장소)                                                 # 해당 디렉토리로 이동

 

 

3️⃣ 업스트림 설정 🔄

git remote add upstream git@github.com:(팀)/(업스트림 저장소).git  # upstream 저장소 추가
git remote -v                                                     # 설정된 remote 저장소 확인
  • upstream을 설정하여 팀 저장소와 연결

4️⃣ 브랜치 동기화 🔄

git fetch upstream          # 최신 변경사항 가져오기  
git checkout main           # main 브랜치로 이동  
git merge upstream/main     # 변경사항 병합  
git push origin main        # 내 저장소(origin)에 반영

 

 

 

 

📌 변경사항 커밋 (Commit)

1️⃣ 현재 변경 상태 확인 👀

git status # 현재 변경 상태 확인(수정할 파일 목록 확인)

 

2️⃣ 스테이지(Stage) 추가 📌

git add .              # 전체 파일 추가  
git add (파일명)         # 특정 파일만 추가
 
 

3️⃣ 커밋 (Commit) 📝

git commit -m "변경할 메시지" # 변경 사항을 로컬 저장소에 저장

 

 

✅ But, 내가 사용할 방식

git add .                          # 모든 파일 추가  
git add "수정파일.md"              # 특정 파일만 추가  
gitmoji -c                         # Gitmoji를 이용한 커밋  
git push origin feature/your-feature-name  # 내 저장소로 푸시

 

 

🌱 브랜치 관리 (기능 개발/버그 수정)

일반적으로 새로운 기능 개발이나 버그 수정 작업은 새로운 브랜치에서 진행하는 것이 좋음.

1️⃣ 로컬 브랜치 생성 및 이동 🌿

git checkout -b feature/내변경사항

git swich feature/your-feature-name # 브랜치 이동
  • 새로운 브랜치를 생성하고 바로 이동
  • 만약 이미 main 브랜치에서 작업했다면 이 단계는 생략 가능
  • 하지만 협업 및 코드 리뷰를 위해 별도 브랜치에서 작업하는 것을 추천

2️⃣ 원격 저장소 (내 포크 저장소)로 변경사항 푸시 🚀

git push origin feature/내변경사항
  • feature/내변경사항은 본인이 작업한 브랜치 이름
  • 여기서 origin은 내 GitHub 계정의 포크 저장소를 의미
  • 만약 main 브랜치에서 작업했다면 git push origin main을 실행
    • 이 경우 내 GitHub 포크 저장소의 main 브랜치가 업데이트됨

 

 

🔄 Rebase (기록 정리)

git rebase main
  • 최신 커밋을 기반으로 브랜치 히스토리를 정리

 

 

🔀 Pull Request(PR) 생성 및 병합

변경사항이 내 포크 저장소에 반영되었으면 이를 팀 저장소로 반영해야 함.
이를 위해 Pull Request(PR) 를 생성해야 함.

1️⃣ Pull Request(PR) 생성

  1. GitHub(또는 사용 중인 Git 플랫폼) 에 접속
  2. 내 포크 저장소로 이동방금 푸시한 브랜치를 선택
  3. 팀의 원본 저장소(upstream)로 PR 생성

2️⃣ PR 리뷰 및 병합

  • 팀원들이 PR을 리뷰하고 피드백을 줄 수 있음
  • 리뷰를 반영해 추가 수정이 필요하다면 다시 로컬에서 수정 후 커밋/푸시하면 PR이 자동 업데이트됨
  • 최종 승인되면 PR을 병합하여 팀의 저장소에 반영

 

 

⚠️ PR (Pull Request) 주의사항

항상 PR을 생성하기 전에 upstream 최신 변경사항을 동기화
하나의 PR에는 하나의 기능/수정만 포함
커밋 메시지는 명확하게 작성

 

 

 

 

업스트림 동기화 & Rebase 이해

🔍 배경 설명협업 중 내가 작업하던 코드와 다른 팀원의 수정 코드가 충돌할 가능성이 있음!이를 해결하려면 업스트림의 최신 변경 사항을 내 로컬 브랜치에 반영하는 과정이 필요함.📌 예제

yiheeju.tistory.com