
안녕하세요 간만입니닷... 프로젝트 기간의 블로그 작성 사치를 부려봅니다.
🏠 기본 개념
- 로컬 (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) 생성
- GitHub(또는 사용 중인 Git 플랫폼) 에 접속
- 내 포크 저장소로 이동 후 방금 푸시한 브랜치를 선택
- 팀의 원본 저장소(upstream)로 PR 생성
2️⃣ PR 리뷰 및 병합
- 팀원들이 PR을 리뷰하고 피드백을 줄 수 있음
- 리뷰를 반영해 추가 수정이 필요하다면 다시 로컬에서 수정 후 커밋/푸시하면 PR이 자동 업데이트됨
- 최종 승인되면 PR을 병합하여 팀의 저장소에 반영
⚠️ PR (Pull Request) 주의사항
❗ 항상 PR을 생성하기 전에 upstream 최신 변경사항을 동기화
❗ 하나의 PR에는 하나의 기능/수정만 포함
❗ 커밋 메시지는 명확하게 작성
업스트림 동기화 & Rebase 이해
🔍 배경 설명협업 중 내가 작업하던 코드와 다른 팀원의 수정 코드가 충돌할 가능성이 있음!이를 해결하려면 업스트림의 최신 변경 사항을 내 로컬 브랜치에 반영하는 과정이 필요함.📌 예제
yiheeju.tistory.com
'🏛️ [Archive] 개발 프로젝트 & 회고 > GitHub 관리 도구 🛠️' 카테고리의 다른 글
| 업스트림 동기화 & Rebase 이해 (0) | 2025.02.18 |
|---|---|
| [Python] Git의 기본 작업 흐름🛠️ (2) | 2024.12.26 |
| GitHub를 왜 사용하는데요? (0) | 2024.12.22 |
| [NAVER BOOST CORCE: Github으로 따라하는 버전 관리] - 완강 후기 및 리뷰 (4) | 2024.09.04 |