[이제와서 시작하는 GitHub 마스터하기 - 기초편 #10] 실전 워크플로우: 일상적인 Git 작업 패턴
[이제와서 시작하는 GitHub 마스터하기 - 기초편 #10] 실전 워크플로우: 일상적인 Git 작업 패턴
학습 목표
이 장을 마치면 다음을 할 수 있습니다:
- ✅ 일상적인 Git 작업 흐름을 이해하고 적용할 수 있습니다
- ✅ 유용한 Git 명령어와 단축키를 사용할 수 있습니다
- ✅ 상태 확인 명령어로 프로젝트를 관리할 수 있습니다
- ✅ 효율적인 일일 워크플로우를 수립할 수 있습니다
지난 편 복습
기초편 #9에서는 git push와 pull을 배웠습니다:
- git push로 로컬 커밋을 GitHub에 업로드
- git pull로 원격 변경사항 가져오기
- 푸시/풀 실패 문제 해결
- 충돌(Conflict) 해결 방법
1. 실전 워크플로우
일일 작업 패턴
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# === 아침: 작업 시작 ===
# 1. 최신 상태로 업데이트
git pull origin main
# 2. 현재 상태 확인
git status
# 3. 새 기능 브랜치 생성 (다음 편에서 자세히)
git checkout -b feature/new-feature
# === 작업 중 ===
# 4. 파일 수정 작업
# 5. 변경사항 확인
git status
git diff
# 6. 작은 단위로 커밋
git add .
git commit -m "feat: add login form"
# === 퇴근 전 ===
# 7. 푸시
git push origin feature/new-feature
# 8. Pull Request 생성 (GitHub에서)
프로젝트 시작 워크플로우
새 프로젝트 시작:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 방법 1: GitHub에서 저장소 생성 후 클론
git clone https://github.com/username/my-project.git
cd my-project
# 방법 2: 로컬에서 시작
mkdir my-project
cd my-project
git init
echo "# My Project" > README.md
git add .
git commit -m "Initial commit"
# GitHub에 저장소 생성 후
git remote add origin https://github.com/username/my-project.git
git push -u origin main
기존 프로젝트 참여:
1
2
3
4
5
6
7
8
9
10
11
12
13
# 1. 포크 (본인 계정으로 복사)
# GitHub에서 "Fork" 버튼 클릭
# 2. 클론
git clone https://github.com/your-username/forked-repo.git
cd forked-repo
# 3. 원본 저장소 추가
git remote add upstream https://github.com/original-owner/repo.git
# 4. 최신 상태 유지
git fetch upstream
git merge upstream/main
협업 워크플로우
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# === 오전: 작업 시작 ===
# 1. main 브랜치로 전환
git checkout main
# 2. 최신 코드 받기
git pull origin main
# 3. 새 기능 브랜치 생성
git checkout -b feature/user-profile
# === 작업 중 ===
# 4. 개발 및 커밋 (여러 번)
git add src/profile.js
git commit -m "feat: add profile component"
git add src/profile.css
git commit -m "style: add profile styling"
# === 점심 후: 원본 저장소 변경사항 동기화 ===
# 5. main 최신 상태로 업데이트
git checkout main
git pull origin main
# 6. 내 브랜치로 돌아와서 병합
git checkout feature/user-profile
git merge main
# (충돌 있으면 해결)
# === 작업 완료 ===
# 7. 최종 커밋 및 푸시
git push origin feature/user-profile
# 8. GitHub에서 Pull Request 생성
# 9. 코드 리뷰 받기
# 10. 승인 후 병합
2. 유용한 단축키와 별칭
Git Alias 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# .gitconfig에 추가 또는
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
# 이제 짧게 사용 가능
git co main # git checkout main
git br # git branch
git ci -m "msg" # git commit -m "msg"
git st # git status
# 고급 별칭
git config --global alias.lg "log --oneline --graph --all"
git config --global alias.last "log -1 HEAD"
git config --global alias.unstage "reset HEAD --"
git config --global alias.amend "commit --amend --no-edit"
# 사용 예시
git lg # 예쁜 로그
git last # 마지막 커밋
git unstage file.txt # 스테이징 취소
git amend # 마지막 커밋에 추가
유용한 단축 명령어
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 스테이징 + 커밋을 한 번에
git commit -am "message"
# 마지막 커밋 메시지 수정
git commit --amend -m "new message"
# 이전 커밋 취소 (파일은 유지)
git reset HEAD~1
# 특정 파일 최신 상태로 복원
git checkout -- filename
# 현재 브랜치 이름 확인
git rev-parse --abbrev-ref HEAD
# 변경된 파일 목록만
git diff --name-only
# 커밋 개수 세기
git rev-list --count HEAD
3. 상태 확인 명령어들
git status 옵션
1
2
3
4
5
6
7
8
9
10
11
12
# 기본 상태
git status
# 짧은 형식
git status -s
# M modified-file.txt
# A added-file.txt
# ?? untracked-file.txt
# 브랜치 정보 포함
git status -sb
# ## main...origin/main [ahead 1]
git log 다양한 옵션
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 한 줄로 간단히
git log --oneline
# 그래프 형태로
git log --graph --oneline --all
# 최근 n개만
git log -3
# 특정 파일의 히스토리
git log -- filename
# 특정 작성자
git log --author="name"
# 날짜 범위
git log --since="2024-01-01" --until="2024-01-31"
# 통계 포함
git log --stat
# 변경 내용 포함
git log -p
# 키워드 검색
git log --grep="fix"
# 커밋 메시지 한 줄로
git log --oneline --no-merges
git diff 활용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Working Directory vs Staging Area
git diff
# Staging Area vs Repository
git diff --staged
# 또는
git diff --cached
# 특정 커밋과 비교
git diff abc123
# 두 커밋 비교
git diff abc123 def456
# 특정 파일만
git diff filename
# 통계만
git diff --stat
# 파일 이름만
git diff --name-only
# 브랜치 비교
git diff main feature
git show 사용법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 마지막 커밋 상세
git show
# 특정 커밋
git show abc123
# 파일 이름만
git show --name-only abc123
# 통계
git show --stat abc123
# 특정 파일의 특정 커밋 버전
git show abc123:path/to/file
실전 팁: 일일 워크플로우 체크리스트
📋 출근 체크리스트
git pull origin main- 최신 코드 받기git status- 현재 상태 확인git checkout -b feature/task-name- 새 브랜치 생성
📋 작업 중 체크리스트
- 자주
git status로 상태 확인 - 의미 있는 단위로 커밋
- 커밋 메시지 명확하게 작성
git log --oneline으로 히스토리 확인
📋 퇴근 전 체크리스트
- 모든 변경사항 커밋 완료
git push origin branch-name- 원격에 백업- Pull Request 생성 (작업 완료 시)
- 내일 할 일 TODO 커밋 (선택)
자주 묻는 질문 (FAQ)
Q1. 매일 pull을 해야 하나요?
A: 네, 필수입니다! 특히 팀 프로젝트에서는:
- 아침 출근 시
- 긴 회의 후
- 다른 브랜치에서 작업 시작 전
Q2. 커밋은 얼마나 자주 해야 하나요?
A: 자주 하세요! 권장 기준:
- 작은 기능 단위마다
- 1-2시간 작업마다
- 점심/퇴근 전
- “의미 있는 변경” 완료 시
Q3. 여러 기능을 동시에 작업하면 안 되나요?
A: 브랜치를 사용하세요! (다음 편에서 상세히)
1
2
3
4
5
git checkout -b feature/login
# 로그인 작업...
git checkout -b feature/signup
# 회원가입 작업...
Q4. Git Alias를 어디에 설정하나요?
A: ~/.gitconfig 파일에 자동 추가됩니다:
1
2
3
4
5
git config --global alias.co checkout
# → ~/.gitconfig에 추가됨
# 직접 편집도 가능
vi ~/.gitconfig
실습 과제
과제 1: 워크플로우 연습
- 새 프로젝트 시작
- README.md 작성 및 커밋
- 3개 파일 추가 (각각 별도 커밋)
git log --oneline --graph로 히스토리 확인
과제 2: Alias 설정
- 자주 사용하는 명령어 5개 선택
- Alias 설정
- 실제로 사용해보기
과제 3: 상태 확인 연습
- 파일 수정
git status,git diff확인- 스테이징 후
git diff --staged확인 - 커밋 후
git show확인
마무리
축하합니다! 실전 Git 워크플로우를 마스터했습니다.
핵심 요약:
- ✅ 일일 패턴: pull → 작업 → add → commit → push
- ✅ Alias: 자주 쓰는 명령어 단축
- ✅ 상태 확인: status, log, diff, show
- ✅ 습관화: 자주 커밋, 자주 풀, 명확한 메시지
다음 편에서는 Branch(브랜치)의 기본을 배워보겠습니다!
📚 GitHub 마스터하기 시리즈
🌱 기초편 (입문자)
- GitHub 소개와 계정 만들기
- 프로필 꾸미기와 포트폴리오
- 보안 설정과 인증
- Repository 이해하기
- README 작성법
- .gitignore와 라이선스
- 첫 커밋과 관리
- git add와 commit
- git push와 pull
- 실전 워크플로우 👉 현재 글
- Branch 기본
- Merge와 Rebase
- 브랜치 전략
- Fork와 Clone
- Pull Request
💼 실전편 (중급자)
🚀 고급편 (전문가)
- GitHub Actions 입문
- Actions 고급 활용
- Webhooks와 API
- GitHub Apps 개발
- 보안 기능 활용
- Packages 레지스트리
- Codespaces 클라우드 개발
- GitHub CLI 마스터
- Insights와 Analytics
🏆 심화편 (전문가+)
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
