IT/Git

Git 19회차. Git 저장소 정리 및 리포지터리

밥알이 2025. 7. 20. 07:40

🧹 Git 19회차. Git 저장소 정리 및 리포지터리 마무리하기

프로젝트가 끝나도 Git 저장소는 그대로 두시나요? 사실, 마무리 작업이 진짜 Git 실력입니다! 이번 회차에서는 Git 저장소를 깔끔하게 정리하고 협업자에게도 보기 좋은 상태로 만드는 방법을 소개할게요 😊


📌 정리 전, 왜 저장소를 정리해야 할까?

  • ✔️ 협업 종료 후 불필요한 브랜치가 난무
  • ✔️ .gitignore 없이 쓸모없는 파일 추적 중
  • ✔️ 히스토리가 너무 복잡해져 버전 파악이 어려움

📦 Git 저장소 정리는 곧 프로젝트의 정돈된 마무리입니다. 아래 단계를 따라 깔끔한 리포지터리를 완성해봐요!


1️⃣ 불필요한 브랜치 정리

📍 로컬 브랜치 목록 확인

git branch

📍 병합된 브랜치 정리

# main에 병합된 브랜치만 삭제
git branch --merged main

📍 브랜치 삭제

git branch -d feature/login
  • ✔️ -d: 병합된 브랜치만 삭제
  • ✔️ -D: 강제 삭제 (주의!)

📍 원격 브랜치 삭제

git push origin --delete feature/login

병합이 끝난 브랜치는 남겨둘 이유가 없어요! 보관용이라면 백업 태그를 걸어두면 충분합니다.


2️⃣ .gitignore 재정비

.gitignore는 프로젝트의 불필요한 파일 추적을 방지해요.

✔️ 반드시 무시해야 할 항목 예시

  • ✔️ IDE 설정: .vscode/, .idea/
  • ✔️ 빌드 결과물: dist/, build/
  • ✔️ 환경 설정: .env, *.log
# 예시 .gitignore
node_modules/
.env
*.log
dist/
.idea/

📍 이미 추적 중인 파일 .gitignore에 추가했을 때

git rm --cached -r node_modules/

이후 커밋 & 푸시로 반영 완료!


3️⃣ 릴리스용 태그 정리

프로젝트 버전을 명확하게 표시하려면 태그를 정리하는 것도 중요합니다.

git tag -a v1.0.0 -m "정식 릴리스"
git push origin v1.0.0

GitHub의 Release 탭과 연동하여 다운로드 가능 패키지처럼 관리해보세요 😊


4️⃣ 히스토리 정리: rebase 또는 squash 활용

📍 여러 개의 커밋을 하나로 합치기

git rebase -i HEAD~3
  • ✔️ pick → squash로 변경 후 저장
  • ✔️ 커밋 메시지를 하나로 정리

📍 머지할 때 squash merge 활용

git merge --squash feature/checkout

최종 결과만 깔끔하게 병합할 수 있어요.


5️⃣ README.md & CONTRIBUTING.md 정비

  • ✔️ README에 최종 버전, 사용 방법, 설치 가이드 명시
  • ✔️ 기여 가이드라인 정리 시, CONTRIBUTING.md 활용
  • ✔️ 링크, 라이선스, 개발 환경 정보도 명확히!

이런 마무리 작업이 있어야 다음 개발자, 혹은 과거의 나도 저장소를 쉽게 이해할 수 있겠죠? 😉


📦 GitHub 저장소 최적화 팁

  • ✔️ 이슈 / PR 정리: 불필요한 이슈 닫기, PR 라벨링
  • ✔️ 디스크 용량 줄이기: 커밋 내 이미지 삭제, Git LFS 사용
  • ✔️ 프로젝트 탭으로 작업 흐름 시각화

GitHub도 정리해두면 오픈소스처럼 관리하기 훨씬 좋아요 🙌


📌 오늘의 핵심 요약

  • ✔️ 프로젝트 종료 후에는 반드시 저장소 정리가 필요해요
  • ✔️ 불필요한 브랜치, 추적 파일, 중복 커밋을 정리해보세요
  • ✔️ README와 태그를 잘 활용하면 저장소 가독성이 높아집니다

정돈된 Git 저장소는 실력자의 마무리 습관입니다! 오늘 배운 내용으로 여러분의 리포지터리를 새롭게 정비해보세요 ✨


📎 다음 회차 예고

20회차. Git 마스터를 위한 추가 학습 리소스 & 추천 코스

✔️ 고급 Git 명령어 ✔️ Git 내부 구조 학습 ✔️ 추천 학습서 & 온라인 강의