close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

이 내용도 나중에 개인 블로그에 올릴 예정이지만, 그전에 모두의연구소에 공유하도록 합니다. 

일단은 Swift를 위한 .gitignore 파일 만들기 이지만, 다른 언어 또는 다른 개발툴에서도 유사하게 적용할 수 있습니다. 

 

Git을 사용하면 파일들의 버전 관리를 편리하게 할 수 있지만, 가끔씩 원하지 않는 파일들까지 관리하게 되면서 불편함이 생기기도 합니다. 가장 대표적인 경우가 개발 과정에서 부산물로 생기는 임시 파일들을 추적하는 경우입니다.

프로젝트 설정과 관련한 파일들(예를 들어, 빌드 과정에서 발생하는 object 파일)을 Git의 변경 내력 추적에서 제외하려면 gitignore 파일을 만들면 됩니다. Git은 해당 폴더의 .gitignore 파일에 적혀있는 파일들은 버전 관리에서 제외합니다.1

파일 이름 앞의 .은 숨김 파일을 의미합니다.

위의 참고 자료에서 .gitignore 작성 방법을 알려주지만, Xcode 버전에 따라 변경 사항이 발생할 수 있으므로 GitHub에서 제공하는 내용을 사용하도록 하겠습니다.

.gitignore 만들기

Xcode 및 Swift 개발 과정에서 .gitignore 파일에 작성해야 할 내용은 GitHub 사이트에 잘 정리되어 있습니다.2 GitHub 사이트에 보시면 Swift.gitignore 파일과 Xcode.gitignore 두 개 모두 나와 있는데, Swift.gitignore 파일은 Xcode.gitignore 파일의 내용을 모두 포함하고 있는 것 같습니다.3  4

아래의 참고 자료에서 Swift.gitignore 파일은 Xcode.gitignore 파일의 내용을 모두 포함하고 있는 것 같습니다.[^SwiftGitIgnore]

.gitignore 파일로 제외할 수 없는 파일 제외하기

.gitignore 파일은 향후 Git에서 버전 관리에 제외할 파일들을 지정하는 파일이지만, 이미 버전 관리를 하고 있는 파일들을 .gitigore 파일에 기록했다고 해서 알아서 버전 관리에 제외하지는 않습니다.

이럴 경우에는 수동으로 해당 파일들을 버전 관리에서 제거해줘야 합니다. git rm --cached 명령어로 Git에서 파일들을 제거하면 됩니다.

$ git rm --cached .../UserInterfaceState.xcuserstate

위의 예제는 Xcode의 레이아웃 관리 파일을 제거하는 예제입니다.5

그리고 위의 명령어와 이어서 커밋까지 해줘야 합니다.6 ProGit에서 본 내용인데 깜박했습니다. 7

고찰 하기

.gitignore에 기록되는 파일들이 어떤 의미를 가지고 있는지 알아볼 필요가 있을 것 같습니다. 예를 들어, .dSYM 파일은 무슨 역할을 하는 파일인지 왜 제외해야 하는지 살펴볼 필요가 있습니다.

일단 참고 자료에 따르면 .dSYM 파일은 debug symbols file의 줄임말로 앱의 디버그 심볼들을 저장하는 파일이라고 합니다.8

나중에 Xcode 프로젝트 관련 파일들에 대해서 정리할 생각입니다.

참고 자료


  1. Xcode에서 git 사용할 때, 필요 없는 파일을 무시하려면?

  2. github/gitignore

  3. github/gitignore/Swift.gitignore

  4. gitignore/Global/Xcode.gitignore

  5. gitignore로 tracking 제외할 수 없는 파일 제외하기

  6. 아사타 블로그 github에서 ignore 안되는 파일 제거하기~~~

  7. 파일 삭제하기

  8. The LLDB Debugger