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
첫 댓글 달아줘.