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

 

출처 : ChatGPT

 

GitHub 협업 플로우

단계 역할
Clone 프로젝트 시작
HEAD 현재 작업 중인 커밋 포인터
Branch 개별 작업 공간 생성
Commit 변경 사항 저장
Push 원격에 업로드
PR (Pull Request) 병합 요청 및 코드 리뷰
Merge 최종 반영 (작업을 메인 브랜치에 통합)

 

실제 협업 시 흐름 요약

  1. 각자 로컬에서 작업 → git add → git commit (내 로컬 저장소에 변경 기록 저장)
  2. 변경 내용을 원격 저장소에 올림 → git push (팀원이 접근 가능한 저장소에 반영) -> 수정내용이 충돌(conflict 발생) 할 수 있으므로 자주 commit하고 push 하는 것이 중요.
  3. 팀원들은 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” 버튼 클릭으로 처리
- 병합 후 브랜치는 삭제해도 무방