Git 협업을 위한 필수 명령어 가이드

1. 사용자 정보 설정

# 최초 설치 후 사용자 정보 등록
git config --global user.name "홍길동"
git config --global user.email "hong@example.com"

# 현재 설정 확인
git config --list

2. 저장소 초기화 및 복제

# 원격 저장소 가져오기
git clone https://github.com/example/team-project.git

# 특정 브랜치만 복제
git clone -b dev https://github.com/example/team-project.git

3. 브랜치 관리

# 전체 브랜치 목록 보기
git branch -a

# 새 기능 브랜치 생성
git branch feature/payment-ui

# 브랜치 전환
git checkout feature/payment-ui

# 생성과 전환 동시 수행
git checkout -b feature/payment-ui

# Git 2.23 이상에서의 새로운 방식
git switch -c feature/payment-ui

# 로컬 브랜치 제거
git branch -d feature/payment-ui

# 병합되지 않은 브랜치 강제 삭제
git branch -D feature/payment-ui

# 원격 브랜치 삭제
git push origin --delete feature/payment-ui

4. 코드 업데이트 받기

# 원격 변경사항 가져와 병합
git pull origin master

# 변경 이력을 깔끔하게 유지하는 방식
git pull --rebase origin master

# 변경 내용만 가져오기 (병합은 수동)
git fetch origin

# fetch 후 직접 병합
git merge origin/master

5. 변경사항 커밋하기

# 파일 상태 확인
git status

# 특정 파일 추가
git add components/Button.jsx

# 모든 변경사항 추가
git add .

# 설명과 함께 커밋
git commit -m "fix: 버튼 클릭 이벤트 수정"

# 직전 커밋 메시지 수정
git commit --amend -m "fix: 버튼 클릭 및 스타일 개선"

# 원격 저장소로 전송
git push origin feature/payment-ui

# 새 브랜치 첫 푸시
git push -u origin feature/payment-ui

6. 브랜치 통합 방법

# 기본 브랜치로 이동
git checkout master

# 기능 브랜치 병합 (머지 커밋 생성)
git merge feature/payment-ui

# 선형 이력으로 재구성
git rebase feature/payment-ui

# 여러 커밋을 하나로 압축하여 병합
git merge --squash feature/payment-ui

7. 충돌 해결 절차

# 충돌 발생 시 영향받는 파일 확인
git status

# 충돌 해결 후 파일 등록
git add conflicted-file.js

# 병합 완료 커밋
git commit

# 리베이스 중 충돌 계속 진행
git rebase --continue

# 리베이스 취소
git rebase --abort

8. 작업 임시 저장

# 현재 변경사항 임시 보관
git stash

# 설명과 함께 저장
git stash save "결제 모듈 개발 중"

# 저장된 목록 확인
git stash list

# 최근 보관 내용 복원
git stash pop

# 특정 보관본 적용
git stash apply stash@{1}

9. 커밋 이력 조회

# 전체 커밋 기록 보기
git log

# 한 줄 요약 형식
git log --oneline

# 브랜치 구조 그래프 표시
git log --oneline --graph --all

# 특정 파일 변경 내역 추적
git log -p src/components/PaymentForm.jsx

10. 이전 상태로 되돌리기

# 작업 중인 파일 변경 취소
git restore filename.txt

# 스테이징 영역에서 제거
git restore --staged filename.txt

# 직전 커밋으로 이동 (작업 유지)
git reset --soft HEAD~1

# 직전 커밋으로 완전 복귀 (위험)
git reset --hard HEAD~1

# 특정 커밋을 되돌리는 새로운 커밋 생성
git revert <commit-hash>

11. 표준 개발 프로세스

1. git checkout master              # 메인 브랜치로 이동
2. git pull origin master           # 최신 코드 동기화
3. git checkout -b feature/new-feature  # 기능 브랜치 생성
4. ... 코드 작성 ...
5. git add . && git commit         # 변경사항 저장
6. git pull --rebase origin master      # 메인 최신 반영
7. git push origin feature/new-feature  # 원격에 업로드
8. GitHub/GitLab에서 PR/MR 요청
9. 리뷰 통과 후 메인 브랜치 병합

태그: Git version-control collaboration branch-management merge-conflict

6월 24일 16:37에 게시됨