Git 기초부터 실전까지: 설치부터 충돌 해결까지 핵심 명령어 정리

Git를 시작하는 첫걸음: 실제 개발 환경에서 활용하는 핵심 흐름

이번 채널에서는 소프트웨어 테스트 입문자에게 꼭 필요한 Git 버전 관리 시스템을 단계별로 익히는 시간을 갖습니다. 명령어 하나하나 외우기보다, 실제 업무 흐름에 맞춰서 이해하고 사용하는 것이 중요합니다.

본 강의는 다음과 같은 순서로 진행됩니다:

  • 설치 및 초기 설정
  • 핵심 개념 이해 (작업 영역, 스테이징, 브랜치 등)
  • 주요 명령어 실습
  • 충돌 발생 시 해결 전략
  • 과거 버전 복원 방법

모든 내용은 실제 테스트 업무에서 바로 적용 가능한 사례 중심입니다.

  1. Git란 무엇인가? – 분산 저장소의 핵심 가치 Git은 오픈소스 기반의 분산형 버전 관리 시스템으로, 코드 변경 이력을 추적하고 협업을 가능하게 합니다.

주요 특징:

  • 버전 되돌리기: 어느 시점의 코드 상태도 되돌릴 수 있음.
  • 다중 개발자 동시 작업 지원: 각자가 독립된 브랜치에서 작업 가능.
  • 고가용성: 로컬에도 전체 리포지토리가 존재해 서버 장애 시 데이터 손실 없음.

테스트 담당자에게 필수적인 이유:

  • 최신 테스트 대상 코드 확보
  • 특정 오류 원인 파악을 위한 커밋 기록 조회
  • 자동화 테스트 스크립트의 버전 제어
  • 지속적 통합/배포(CI/CD) 파이프라인과 연동
  1. 설치와 기본 설정: 첫 번째 실행 전 준비

운영체제별 설치 패키지 다운로드

  • 공식 사이트: https://git-scm.com/
  • Windows: .exe 설치 파일 실행 → "경로에 추가" 옵션 선택 권장
  • macOS: xcode-select --installgit --version 확인
  • Linux (Ubuntu): sudo apt install git
  • Linux (CentOS): sudo yum install git

초기 사용자 정보 설정 (필수!)

# 전역 설정 (한 번만 수행)
git config --global user.name "김철수"
git config --global user.email "chole@company.com"

# 설정 확인
git config --list

--global 옵션은 모든 프로젝트에 동일하게 적용되며, 개인 정보를 기록할 때 사용됩니다.

  1. 핵심 용어 정리: 워크플로우 이해의 초석
용어 설명 비유
작업 영역 현재 수정 중인 파일들이 위치한 폴더 책상 위에 놓인 문서
스테이징 영역 git add로 임시 저장된 파일들 포장함, 배송 전 준비 중
로컬 저장소 git commit으로 저장된 버전 기록 내 집 안 보관함
원격 저장소 GitHub/GitLab 등의 서버 상 저장소 회사의 공용 문서 보관소
브랜치 메인 코드에서 분리된 독립적인 개발 경로 다른 세계에서 일하는 팀
커밋 한 번의 변경사항을 기록한 스냅샷 게임 세이브 포인트
푸시 로컬 커밋을 원격 저장소에 전달 내 컴퓨터의 저장소를 클라우드에 백업
원격 저장소의 최신 변경 사항을 로컬로 가져오기 타인이 올린 최신 버전을 다운로드

표준 작업 흐름

작업 영역 → (git add) → 스테이징 영역 → (git commit) → 로컬 저장소 → (git push) → 원격 저장소
  1. 핵심 명령어 실습: 실무 중심 가이드

✅ 기본 설정 조작

# 현재 설정 확인
git config user.name

# 에디터 설정 (VSCode 예시)
git config --global core.editor "code --wait"

✅ 저장소 생성 및 관리

# 새 저장소 초기화
git init

# 원격 저장소 복제 (가장 자주 사용)
git clone https://github.com/user/project.git

# 원격 저장소 목록 확인
git remote -v

# 새로운 원격 저장소 추가
git remote add upstream https://github.com/owner/project.git

✅ 파일 상태 확인 및 커밋

# 현재 상태 점검 (항상 먼저 실행!)
git status

# 모든 변경 사항을 스테이징
git add .

# 커밋 메시지 포함하여 저장
git commit -m "홈페이지 로딩 속도 개선"

# 최근 커밋 보기
git log --oneline -5

⚠️ 커밋은 로컬에만 저장됨. 다른 사람이 보기 위해서는 반드시 push 필요.

✅ 원격 저장소와의 동기화

# 최신 변경 사항 가져오기 (병합 포함)
git pull origin main

# 로컬 커밋을 원격 저장소에 업로드
git push origin main

# 처음 연결 시, -u 옵션으로 연결 유지
git push -u origin main

✅ 브랜치 관리 (핵심! 무조건 메인 브랜치 수정 금지)

# 현재 브랜치 확인
git branch

# 새로운 브랜치 생성 후 이동
git checkout -b bugfix-login-error

# 브랜치 삭제 (다른 브랜치로 이동 후 실행)
git branch -d bugfix-login-error

# 원격 브랜치 삭제
git push origin --delete bugfix-login-error

✅ 충돌 처리: 협업 중 피해야 할 문제

두 사람이 동일 파일의 동일 줄을 수정하면 자동 병합 실패 → 충돌 발생.

충돌 구조 예시 (app.py)

<<<<<<< HEAD
print("메인 브랜치의 코드")
=======
print("새 기능 브랜치의 코드")
>>>>>>> bugfix-login-error

해결 방법 1: 수동 편집 (권장)

  1. 충돌 파일 열기
  2. <> 사이의 내용 중 하나 선택하거나 병합
  3. <<<<<<<, =======, >>>>>>> 삭제
  4. 다시 addcommit
git add app.py
git commit -m "코드 충돌 해결: 로그인 버튼 색상 수정"

해결 방법 2: 그래픽 도구 사용 (고급)

git mergetool

VSCode, KDiff3 등과 연동하면 시각적으로 비교·선택 가능.

🔍 예방 팁: 자주 pull 하고, 작은 단위로 커밋하세요. 협업 전 사전 공유도 중요!

✅ 버전 되돌리기: 실수 대비 ‘시간여행’ 기능

# 작업 영역 수정 취소 (아직 스테이징 안 됨)
git checkout -- app.py

# 스테이징 영역에서 제거 (커밋 전)
git reset HEAD app.py

# 최근 커밋 취소 (푸시 전)
git reset --soft HEAD~1   # 변경 내용은 유지
git reset --hard HEAD~1   # 완전 삭제 (주의!)

# 특정 커밋으로 이동
git reset --hard a1b2c3d

# 삭제된 커밋도 찾을 수 있는 히스토리
git reflog

✅ 기타 유용 명령어

# 무시할 파일 설정 (.gitignore)
echo "*.log" >> .gitignore
echo ".env" >> .gitignore
echo "__pycache__/" >> .gitignore

# 변경 내용 비교
git diff                    # 작업 영역 ↔ 스테이징
git diff --cached           # 스테이징 ↔ 커밋
git diff HEAD~1             # 현재 ↔ 이전 커밋

# 버전 라벨링 (릴리즈용)
git tag v1.2.0
git push origin v1.2.0

# 불필요한 파일 정리 (주의!)
git clean -fd
  1. 테스트 담당자를 위한 3가지 필수 팁

  2. 매일 업무 시작 시 git pull 실행 항상 최신 코드로 테스트 수행 → 오류 재현률 감소.

  3. 커밋 메시지는 구체적으로 작성하기 ❌ "수정함", ✅ "로그인 페이지의 인증 실패 시 메시지 오류 수정".

  4. git statusgit log를 매일 활용 어떤 상태인지 모르겠으면 status, 누가 뭘 바꿨는지 궁금하면 log로 확인.

  5. 실습 과제: 간단한 작업 흐름 따라 해보기 다음 작업을 수행하는 데 필요한 명령어를 순서대로 작성하세요:

  6. 원격 저장소 https://github.com/tester/myproject.git를 로컬에 복제합니다.

  7. test-performance-fix라는 새로운 브랜치를 생성하고 이동합니다.

  8. index.html 파일을 수정합니다.

  9. 변경 사항을 스테이징하고, 커밋 메시지 "사이트 로딩 지연 문제 해결"으로 커밋합니다.

  10. 해당 커밋을 원격 저장소에 푸시합니다.

답안 예시:

git clone https://github.com/tester/myproject.git
git checkout -b test-performance-fix
# (편집 후)
git add index.html
git commit -m "사이트 로딩 지연 문제 해결"
git push -u origin test-performance-fix

태그: Git 버전관리 브랜치 커밋 충돌처리

6월 4일 19:41에 게시됨