Git 및 GitHub로 팀 작업을 할 때 모든 것을 망치지 않는 방법

발행: (2025년 12월 10일 오전 03:44 GMT+9)
6 min read
원문: Dev.to

Source: Dev.to

모든 엔지니어링 팀이 채택해야 할 결정적 가이드

Git 때문에 싸우지 마세요.
main을 깨뜨리지 마세요.
작업을 잃어버리지 마세요.

이 워크플로는 전 세계 스타트업과 스케일업에서 고성능 팀이 사용하는 그대로이며 — 주니어에게는 충분히 간단하고, 스태프 엔지니어에게는 충분히 엄격합니다.

핵심 워크플로 (모든 것을 지배하는 6가지 명령)

# 1. 진행 중인 변경 사항을 안전하게 스태시
git stash push -m "wip: halfway through payment UI"

# 2. 최신 main을 가져와 통합
git pull origin main --rebase    # 깔끔한 히스토리를 위해 머지보다 선호

# 3. 작업을 다시 적용
git stash pop                    # 충돌을 일찍 해결

# 4. 변경 사항 스테이징
git add .

# 5. 의미 있는 커밋 메시지 작성
git commit -m "feat: add real‑time donation progress bar with percentage"

# 6. 원격에 푸시
git push origin HEAD

일일·시간별 규율 (꼭 지키세요)

git stash
git pull origin main --rebase
git stash pop

다음 상황마다 이 습관을 실행하세요:

  • 아침에 가장 먼저
  • 새로운 작업을 시작하기 전
  • 팀원이 핫픽스를 알릴 때
  • 커밋을 푸시하기 전

이 하나의 습관으로 ≈ 95 %의 머지 충돌을 없앨 수 있습니다.

프로 수준 원-라이너 (쉘에 추가)

# ~/.zshrc 또는 ~/.bash_profile
alias sync="git stash push -m 'autosave $(date +%H:%M)' \
    && git pull origin main --rebase \
    && git stash pop"

이제 간단히 실행:

sync

권장 브랜칭 전략 (안전 + 빠름)

작업 유형브랜치 이름 예시워크플로
핫픽스 / 긴급hotfix/double-paymentPR과 함께 main에 직접 (with PR)
기능 (> 1 h)feat/donation-progress-bar브랜치 → PR → 리뷰 → 머지
버그 수정fix/invalid-goal-calculation브랜치 → PR
리팩터 / 잡일refactor/extract-payment-service브랜치 → PR

예시: 올바른 기능 브랜치 시작하기

git pull origin main --rebase
git checkout -b feat/share-fundraiser-buttons
# ... 작업 ...
git add .
git commit -m "feat: add social sharing for fundraisers"
git push -u origin feat/share-fundraiser-buttons
# → GitHub에서 Pull Request 열기

Conventional Commits (팀이 고마워할 규칙)

  • feat: 새 기능 추가
  • fix: 버그 수정
  • docs: 문서 전용 변경
  • style: 포맷, 세미콜론 누락 등
  • refactor: 버그도 아니고 기능도 아닌 코드 변경
  • perf: 성능 개선
  • test: 테스트 추가·수정
  • chore: 빌드 프로세스·보조 도구 변경

예시

git commit -m "feat: add fundraiser short link sharing"
git commit -m "fix: prevent negative donation amounts"
git commit -m "refactor: extract donation validation logic"

충돌 해결 ( stash pop 이 실패했을 때)

git stash pop
# → payments/views.py 파일에서 충돌 발생
  1. >>>>>> 마커를 수동으로 고칩니다.

  2. 해결된 파일을 스테이징:

    git add payments/views.py
  3. 커밋 ( -m 옵션 필요 없음; Git이 머지 커밋 메시지를 생성):

    git commit

모든 팀원이 반드시 지켜야 할 골든 룰

  1. 절대 main에 직접 커밋하지 말 것 (승인된 핫픽스 제외).

빠른 레퍼런스 치트 시트 (고정해 두세요)

# 동기화 유지 (자주 실행)
sync                    # 만든 별칭
# 또는 수동으로:
git stash && git pull --rebase origin main && git stash pop

# 완료된 작업 푸시
git add .
git commit -m "type(scope): description"
git push

# 새로운 작업을 안전하게 시작
git pull --rebase origin main
git checkout -b feat/your-feature-name

# 긴급 핫픽스
git checkout main
git pull --rebase origin main
git checkout -b hotfix/critical-bug

마무리 말씀

저는 머지 충돌 때문에 하루를 날려버린 팀도 경험했고,
하루에 20번씩 배포하면서도 전혀 문제가 없던 팀도 경험했습니다.

차이는 언제나 같았습니다: 동기화와 브랜칭에 대한 규율.

  • 오늘 바로 이 워크플로를 채택하세요.
  • 코드 리뷰에서 강제하세요.
  • 온보딩 문서에 포함시키세요.

미래의 여러분과, Git 때문에 외치던 모든 동료들이 감사할 것입니다.

이제 전문가처럼 협업하세요.

2025년에 최소 47번의 분노 퇴장을 막아드렸습니다. 천만에요.

Back to Blog

관련 글

더 보기 »

Git을 사용한 브랜치 개발

git을 사용한 Branch 개발을 위한 커버 이미지 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-up...

Dependabot 기반 Go 의존성 그래프

공급망 보안이라는 주제로 패키지 생태계 지원을 지속적으로 개선해 나가면서, 이제 Go 프로젝트는 보다 완전하고 정확한 전이적…