커밋하지 말아야 할 파일들
커밋하지 말아야 할 파일들
소스 코드를 저장소에 올릴 때 IDE나 코드 편집기, pub 도구, 그리고 다른 도구가 만들어 내는 파일들 대부분은 커밋에 포함하지 않는 게 좋아요. 어떤 파일을 버전 관리에 넣고 어떤 걸 빼야 하는지 정리해 드릴게요.
본문
pub 도구, GitHub, 또는 다른 소스 코드 관리 시스템을 사용해 Dart 소스 코드를 저장소에 올릴 때는, IDE나 코드 편집기, pub 도구, 그리고 다른 도구들이 만들어 내는 파일 대부분은 포함하지 마세요.
참고
별도로 명시된 경우를 제외하면, 이 페이지는 앱 배포가 아니라 소스 코드 저장소만 다룬다는 점을 기억해 주세요. 평소 저장소에 올리지 않는 파일 중에도 앱을 배포할 때는 유용하거나 필수적인 파일이 있어요.
규칙
pub이 만드는 다음 파일과 디렉터리는 커밋하지 마세요.
.dart_tool/
build/
pubspec.lock # 애플리케이션 패키지일 때는 예외
dart doc이 만드는 API 문서 디렉터리도 커밋하지 마세요.
doc/api/
다른 개발 환경이 만들어 내는 파일과 디렉터리도 커밋하지 마세요. 예를 들어 개발 환경이 아래 같은 파일을 만든다면 전역 무시 파일(global ignore file)에 넣는 걸 고려해 보세요.
# IntelliJ
*.iml
*.ipr
*.iws
.idea/
# Mac
.DS_Store
자세한 내용은 계속 읽어 보세요.
자세히 보기
원칙적으로는 패키지나 소스 코드 저장소를 사용하는 사람들이 꼭 필요한 파일만 커밋하세요. 불필요한 파일을 넣는 건 낭비일 뿐 아니라 오히려 역효과를 낼 수 있고, 여러분 컴퓨터 환경에 대한 세부 정보가 드러나면 보안상 문제가 생길 수도 있어요. 많은 소스 코드 저장소에서 생성된 파일은 아예 커밋하지 않는 것이 일반적인 관행이에요.
여러분 개인의 작업 흐름이나 환경에 특화된 파일을 커밋하는 걸 피하려면 전역 무시 파일(예: .gitignore_global)을 사용하는 걸 고려해 보세요.
Git 저장소 안에서 pub을 사용하면, pub도 Git이 무시하는 것과 같은 파일을 무시해요. 예를 들어 keys.txt를 포함한 .gitignore 파일이 있는 Git 저장소에서 pub publish를 실행하면, 게시된 패키지에는 keys.txt 파일이 포함되지 않아요.
.gitignore 파일에 대한 자세한 내용은 GitHub 도움말 페이지 파일 무시하기를 참고하세요.
.dart_tool/
.dart_tool/ 디렉터리에는 다양한 Dart 도구가 사용하는 파일이 들어 있어요.
pubspec.lock
pubspec.lock 파일은 Ruby의 Gemfile.lock과 비슷한 특별한 경우예요.
일반 패키지에서는 pubspec.lock 파일을 커밋하지 마세요. pubspec.lock 파일을 다시 생성하면 의존 패키지의 호환 가능한 최신 버전을 대상으로 패키지를 테스트할 수 있어요.
애플리케이션 패키지에서는 pubspec.lock 파일을 커밋할 것을 권해요. pubspec.lock 파일을 버전 관리에 넣으면 전이 의존성(transitive dependency)의 변화가 명시적으로 드러나요. dart pub upgrade나 pubspec.yaml 변경 때문에 의존성이 바뀔 때마다 그 차이가 lock 파일에 그대로 나타나요.
더 알아보기
- 파일 무시하기(GitHub) —
.gitignore작성 방법. - dart doc — API 문서 생성 도구.