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. 리뷰 통과 후 메인 브랜치 병합