Cloud
GIT & GIT HUB - 개념 정리
BOKCH1
2025. 5. 28. 20:31
Git이란?
- Git은 **분산 버전 관리 시스템(DVCS)**
- 코드 변경 이력을 관리하고, 브랜치로 독립적인 작업을 병행하며 협업을 원활하게 해줌.
Git의 작업 구조
단계 | 설명 | 주요 명령어 |
Working Directory | 로컬에서 실제로 코딩하는 공간 | - |
Staging Area | 커밋 전 변경 내용을 임시로 저장하는 공간 | git add |
Local Repository | 커밋된 버전들이 저장된 로컬 이력 | git commit |
Remote Repository | GitHub 등 원격 저장소 | git push, git pull |
GitHub 협업 플로우
단계 | 역할 |
Clone | 프로젝트 시작 |
HEAD | 현재 작업 중인 커밋 포인터 |
Branch | 개별 작업 공간 생성 |
Commit | 변경 사항 저장 |
Push | 원격에 업로드 |
PR (Pull Request) | 병합 요청 및 코드 리뷰 |
Merge | 최종 반영 (작업을 메인 브랜치에 통합) |
실제 협업 시 흐름 요약
- 각자 로컬에서 작업 → git add → git commit (내 로컬 저장소에 변경 기록 저장)
- 변경 내용을 원격 저장소에 올림 → git push (팀원이 접근 가능한 저장소에 반영) -> 수정내용이 충돌(conflict 발생) 할 수 있으므로 자주 commit하고 push 하는 것이 중요.
- 팀원들은 git pull로 최신 변경 내용을 받아 작업 반영
Branch 관리
┌─────────────┐
│ main │ ← 기본 브랜치 (안정적인 코드)
└─────┬───────┘
│
┌───────┴─────────┐
│ │
┌─────────────┐ ┌──────────────┐
│ featureA │ │ featureB │ ← 독립적인 작업 공간 (브랜치)
└─────────────┘ └──────────────┘
현재 작업 중인 브랜치: HEAD → featureA
- main : 프로젝트의 기본 흐름(기본 브랜치)
- Branch : featureA, featureB 등, 여러 개발자가 독립적으로 작업하기 위한 공간
- HEAD : 지금 내가 작업 중인 브랜치를 가리키는 포인터 (예: featureA)
주요 명령어
- git status: 현재 상태 확인
- git add 파일명: Staging Area에 올림
- git commit -m "메시지": 커밋 생성
- git push: 원격 저장소에 반영
- git pull: 원격 변경 사항 받아오기
1. Clone
- 원격 저장소(GitHub)의 코드를 내 로컬 환경으로 복제하는 명령어
git clone https://github.com/your-org/project.git
2. Checkout (Branch)
- 독립적인 작업 공간
- 메인 브랜치(main/master)를 손대지 않고 기능(feature)이나 수정(hotfix)을 작업할 수 있음
git checkout -b feature/add-login
# git checkout: 브랜치를 전환하거나 특정 커밋으로 이동
# -b: 브랜치를 새로 생성
# feature/add-login: 만들 브랜치 이름
3. Commit
- 코드 변경 내역을 저장하는 스냅샷
- 의미 있는 단위로 자주 커밋하는 것이 좋음
- git add나 git commit 후 내용은 터미널이나 서버 재부팅과는 무관하게 보존됨
git add . # Staging Area에 업로드
git commit -m "feat: 로그인 기능 추가" # Staging Area에 올라간 파일만 commit함
4. Push & Pull
- 로컬 저장소의 커밋을 원격 저장소(GitHub)로 업로드
# 로컬 → 원격 (업로드)
git push [원격저장소이름] [브랜치이름] #main 브랜치인경우 main 입력
# 원격 → 로컬 (다운로드 + 병합)
git pull [원격저장소이름] [브랜치이름]
5. Pull Request (PR)
- 작업한 브랜치를 메인 브랜치에 병합 요청하는 과정
- 코드 리뷰와 테스트를 거치는 중요한 단계
- GitHub 웹에서 생성 가능
6. Merge
- 코드 리뷰가 끝난 브랜치를 메인 브랜치에 병합
- 보통은 PR에서 “Merge” 버튼 클릭으로 처리
- 병합 후 브랜치는 삭제해도 무방