프로젝트 하면서 겪은 이슈정리

호씨·2024년 11월 26일
1

GitHub DS_Store 컨플릭트 문제 해결

발생한 문제

금일 GitHub에서 팀원들과 만든 파일들을 공유하는 과정에서 'DS_Store' 파일로 인한 컨플릭트가 발생했다. .gitignore를 설정했음에도 문제가 발생했는데, 이는 DS_Store 파일의 다양한 형태를 모두 고려하지 않았기 때문이었다.

.gitignore 설정

단순히 .DS_Store만 추가하는 것이 아니라, 다음과 같은 형태를 모두 추가해야 한다:

  • .DS_Store
  • ._.DS_Store
  • **/.DS_Store
  • **/._.DS_Store

아래 이녀석은 추가로 피드백받은 사항으로 이 설정도 같이 추가하면 좋다고 말씀해주셨다.

  • *.xcuserstate

문제 해결 과정

1차 시도: PR 규정 우회

  • .gitignore에 관련 파일들을 추가
  • PR 규정(팀원 4명 동의 필요)으로 인한 제약 발생
  • 임시로 규정을 풀고 강제 머지 진행
  • 결과: 다른 팀원들의 PR에서 pull, push 차단되는 문제 발생

2차 시도: 터미널에서 해결

Xcode에서 해결이 안 되어 터미널에서 다음 명령어로 해결:

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

이 명령어로 DS_Store 파일을 강제 제거 후 컨플릭트가 해결되었다.

교훈

.gitignore 설정 시 파일의 다양한 형태를 모두 고려해야 함
특히 macOS의 .DS_Store와 Xcode의 *.xcuserstate 파일 주의
컨플릭트 해결 시 강제 머지보다는 체계적인 접근 필요

profile
이것저것 많이 해보고싶은 사람

0개의 댓글