콘텐츠로 이동

원본과 생성물 관리

Git·협업 목차 · 관련: RnimanEngine, 위키와 프로젝트의 상호 반영

상태: 초안 · 적용 범위: 에셋·빌드 결과·캐시가 있는 개인 프로젝트의 Git 관리 · 제안일: 2026-09-15

파일의 확장자보다 역할과 재생성 가능성을 기준으로 관리한다. 아래 강도는 채택 시의 제안이다. 구체적인 출력 경로·빌드 도구는 프로젝트에서 정한다.

규칙

대상 제안 기준 강도 이유·예외
원본·설정 소스·원본 에셋·변환 설정과 준비 방법을 재현 가능하게 보관 필수 대용량·라이선스 제약은 별도 저장소나 취득 절차 허용
기준 입력 회귀 재현에 필요한 bin·DDS 등도 관리 대상으로 판단 필수 확장자만으로 캐시라고 가정하지 않음
생성물 재생성 가능한 출력·중간 파일·캐시는 실제 경로 중심으로 제외 권장 배포 결과 보존은 릴리스 등 별도 정책에 따름
이름 충돌 같은 확장자의 원본과 중간 파일을 구분 필수 OBJ 모델과 컴파일 중간 .obj를 동일하게 제외하지 않음
외부 도구 버전·출처·라이선스·준비 방법 기록 권장 .lib·.dll·.exe를 모두 삭제·제외하는 기준으로 사용하지 않음
텍스트·바이너리 줄바꿈 정책과 바이너리 변환 제외를 구분 필수 도구 요구에 따른 텍스트 예외는 프로젝트에 기록
변경 검증 필요한 파일이 추적 대상인지, 생성물이 제외되는지 확인 필수 .gitignore 추가만으로 기존 추적 파일이 해제되지 않음

예를 들어 출력이 루트 obj/라면 그 경로를 제외하고 Assets/Models/ship.obj의 모델은 보존할 수 있다. Git 패턴의 디렉터리 범위를 확인한 뒤 적용한다. 현재 추적 파일을 제거해야 한다면 영향과 사용자 요청 범위를 별도로 확인한다.

편집과 저장소 정책

편집기의 인코딩·공백 설정과 Git의 텍스트 정규화 설정은 역할이 다르다. C++ 소스 포맷은 기존 포맷 규칙을 따르고, 다른 형식의 예외를 C++ 전체로 확대하지 않는다.

캐시는 재생성에 필요한 원본·옵션·도구 버전을 함께 관리할 수 있을 때 생성물로 취급한다. 원본 없는 유일한 결과를 캐시라고 이름 붙였다는 이유만으로 제외하거나 삭제하지 않는다. 캐시 무효화 알고리즘과 원격 저장 방식은 프로젝트별 미결정 사항이다.

근거와 공식 동작

프로젝트 사례의 근거는 RnimanEngine의 원본 안내를 참조한다. 이 문서의 관리 기준은 개인 규칙 제안이다. Git 공식 문서는 패턴과 속성의 동작을 정의하지만 어떤 에셋을 보존할지는 프로젝트가 판단한다. 특정 경로와 Windows 스크립트 예외를 모든 프로젝트에 채택하지 않았다.

확인일: 2026-09-15. 두 공식 매뉴얼의 표시 개정 버전은 Git 2.55.0이다. 이는 출처 버전이며 프로젝트의 최소 Git 버전을 새로 정하지 않는다.

변경 기록

  • 2026-09-15: 프로젝트의 스크립트 줄바꿈 설정과 에셋 관리 사례는 프로젝트 문서로 모으고 공통 규칙과 근거 링크를 유지했다. 초안 상태와 규칙 강도는 유지했다.

  • 2026-09-15: 프로젝트 사례와 Git 공식 동작을 대조하여 초안을 추가했다. 실제 ignore·attributes·편집기 설정은 변경하지 않았다.