개발 slecs

HUD 캐시를 깃이그노어에 추가해 팀 머지 충돌 해소

목차

OMC HUD 캐시 디렉토리를 .gitignore에 추가했다. 간단하지만 팀 협업에서 꽤 중요한 작업이다.

왜 이 작업이 필요했나

저장소를 보니 .omc/state/ 디렉토리 아래 hud-state.json, hud-stdin-cache.json 같은 파일들이 tracked 상태로 있었다. 이들은 로컬 개발 환경에서 실시간으로 변경되는 캐시/상태 파일인데, 여러 팀원이 작업하면서 같은 디렉토리에서 이 파일들을 계속 수정하게 되면 merge conflict가 발생한다. 누군가는 HUD 상태를 X로 저장했고, 다른 누군가는 Y로 저장했을 때, git은 어느 버전이 맞는지 판단할 수 없다. 그 결과 PR이 conflict로 빨간 불이 들어오고, 팀원들이 불필요한 수작업으로 이를 해결해야 한다.

개선: .gitignore에 디렉토리 추가

# .gitignore
.omc/state/

단순해 보이지만, 이것으로 여러 문제가 해결된다:

이전 (제외 전) 이후 (제외 후)
로컬 캐시 변경 → 자동 tracked 로컬 캐시 변경 → 무시됨
팀원 A, B 같은 파일 수정 → conflict 각자 로컬만 관리 → conflict 없음
git status 지저분함 git status 깔끔함

팀 협업 관점에서 체크할 점

이런 작업을 할 때 개발팀 전체가 고려해야 할 것들:

  • 이미 committed된 파일인가? — 있다면 git rm --cached로 staging area에서만 제거하고 .gitignore 추가 (history는 유지)
  • 모든 개발자가 같은 .gitignore를 사용하는가? — CI/CD 환경, 로컬 개발 환경 모두 동일하게 동작하는지 확인
  • 문서화했는가? — CONTRIBUTING.md나 README에 ".omc/state/는 로컬 HUD 캐시로, 각자 환경에서만 사용됨"이라고 명시하면 신입도 빠르게 이해
  • 혹시 다른 캐시 디렉토리도 있는가? — node_modules, .venv, .next 등 비슷한 것들도 한번에 확인

일반적 best practice

버전 관리 시스템에 뭔가를 add할 때마다 "이건 repository에 들어가야 하나?"를 자문하자:

  • 들어가야 하는 것: 소스코드, 설정 파일 (예: .eslintrc), 테스트 케이스, 문서
  • 들어가면 안 되는 것: 로컬 캐시, 개발 중 임시 파일, 민감한 정보, 빌드 산출물

특히 CI/CD 파이프라인이 있다면, "로컬에서 실행되는 이 파일이 CI에서도 다시 생성되는가?"를 생각해 보자. 그렇다면 그 파일은 git에서 제외하는 게 정답이다.

이런 작업들은 개별적으로는 작아 보이지만, 팀이 커질수록 이런 "정리 작업"이 PR conflict를 줄이고 repository 히스토리를 깔끔하게 유지한다. 다음번에 누군가 "왜 자꾸 merge conflict가 나?"라고 물어올 때 이미 그 근본을 제거해 둔 상태가 된다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.