Git를 시작하는 첫걸음: 실제 개발 환경에서 활용하는 핵심 흐름
이번 채널에서는 소프트웨어 테스트 입문자에게 꼭 필요한 Git 버전 관리 시스템을 단계별로 익히는 시간을 갖습니다. 명령어 하나하나 외우기보다, 실제 업무 흐름에 맞춰서 이해하고 사용하는 것이 중요합니다.
본 강의는 다음과 같은 순서로 진행됩니다:
- 설치 및 초기 설정
- 핵심 개념 이해 (작업 영역, 스테이징, 브랜치 등)
- 주요 명령어 실습
- 충돌 발생 시 해결 전략
- 과거 버전 복원 방법
모든 내용은 실제 테스트 업무에서 바로 적용 가능한 사례 중심입니다.
- Git란 무엇인가? – 분산 저장소의 핵심 가치 Git은 오픈소스 기반의 분산형 버전 관리 시스템으로, 코드 변경 이력을 추적하고 협업을 가능하게 합니다.
주요 특징:
- 버전 되돌리기: 어느 시점의 코드 상태도 되돌릴 수 있음.
- 다중 개발자 동시 작업 지원: 각자가 독립된 브랜치에서 작업 가능.
- 고가용성: 로컬에도 전체 리포지토리가 존재해 서버 장애 시 데이터 손실 없음.
테스트 담당자에게 필수적인 이유:
- 최신 테스트 대상 코드 확보
- 특정 오류 원인 파악을 위한 커밋 기록 조회
- 자동화 테스트 스크립트의 버전 제어
- 지속적 통합/배포(CI/CD) 파이프라인과 연동
- 설치와 기본 설정: 첫 번째 실행 전 준비
운영체제별 설치 패키지 다운로드
- 공식 사이트: https://git-scm.com/
- Windows:
.exe설치 파일 실행 → "경로에 추가" 옵션 선택 권장 - macOS:
xcode-select --install후git --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옵션은 모든 프로젝트에 동일하게 적용되며, 개인 정보를 기록할 때 사용됩니다.
- 핵심 용어 정리: 워크플로우 이해의 초석
| 용어 | 설명 | 비유 |
|---|---|---|
| 작업 영역 | 현재 수정 중인 파일들이 위치한 폴더 | 책상 위에 놓인 문서 |
| 스테이징 영역 | git add로 임시 저장된 파일들 |
포장함, 배송 전 준비 중 |
| 로컬 저장소 | git commit으로 저장된 버전 기록 |
내 집 안 보관함 |
| 원격 저장소 | GitHub/GitLab 등의 서버 상 저장소 | 회사의 공용 문서 보관소 |
| 브랜치 | 메인 코드에서 분리된 독립적인 개발 경로 | 다른 세계에서 일하는 팀 |
| 커밋 | 한 번의 변경사항을 기록한 스냅샷 | 게임 세이브 포인트 |
| 푸시 | 로컬 커밋을 원격 저장소에 전달 | 내 컴퓨터의 저장소를 클라우드에 백업 |
| 풀 | 원격 저장소의 최신 변경 사항을 로컬로 가져오기 | 타인이 올린 최신 버전을 다운로드 |
표준 작업 흐름
작업 영역 → (git add) → 스테이징 영역 → (git commit) → 로컬 저장소 → (git push) → 원격 저장소
- 핵심 명령어 실습: 실무 중심 가이드
✅ 기본 설정 조작
# 현재 설정 확인
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: 수동 편집 (권장)
- 충돌 파일 열기
<와>사이의 내용 중 하나 선택하거나 병합<<<<<<<,=======,>>>>>>>삭제- 다시
add→commit
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
-
테스트 담당자를 위한 3가지 필수 팁
-
매일 업무 시작 시
git pull실행 항상 최신 코드로 테스트 수행 → 오류 재현률 감소. -
커밋 메시지는 구체적으로 작성하기 ❌ "수정함", ✅ "로그인 페이지의 인증 실패 시 메시지 오류 수정".
-
git status와git log를 매일 활용 어떤 상태인지 모르겠으면status, 누가 뭘 바꿨는지 궁금하면log로 확인. -
실습 과제: 간단한 작업 흐름 따라 해보기 다음 작업을 수행하는 데 필요한 명령어를 순서대로 작성하세요:
-
원격 저장소
https://github.com/tester/myproject.git를 로컬에 복제합니다. -
test-performance-fix라는 새로운 브랜치를 생성하고 이동합니다. -
index.html파일을 수정합니다. -
변경 사항을 스테이징하고, 커밋 메시지
"사이트 로딩 지연 문제 해결"으로 커밋합니다. -
해당 커밋을 원격 저장소에 푸시합니다.
답안 예시:
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