2024. 12. 26. 21:00ㆍ카테고리 없음
언리얼 엔진 프로젝트는 일반적인 코드 프로젝트와는 달리 대규모의 바이너리 파일과 다양한 설정 파일을 포함하고 있어 Git을 사용할 때 주의가 필요합니다. 아래는 GitHub와 언리얼 엔진을 함께 사용할 때 알아야 할 주요 유의사항입니다.
1. 불필요한 파일 제외 (.gitignore 설정)
언리얼 엔진 프로젝트에는 빌드 중 생성되는 불필요한 파일들이 많습니다. 이러한 파일들은 Git에서 제외해야 저장소 크기를 관리하고 성능 문제를 방지할 수 있습니다. .gitignore 파일을 설정하여 관리합니다.
.gitignore 파일 예시:
# Unreal Engine 파일 제외
Binaries/
Build/
Intermediate/
Saved/
DerivedDataCache/
# 로그 및 임시 파일
*.log
*.tmp
*.db
# MacOS 및 Windows 관련 파일
.DS_Store
Thumbs.db
2. Git LFS(Large File Storage) 사용
언리얼 엔진 프로젝트에는 .uasset과 같은 대용량 바이너리 파일이 포함됩니다. Git은 바이너리 파일의 변경 사항을 효율적으로 관리하지 못하므로, Git LFS를 사용해 대용량 파일을 효율적으로 추적합니다.
Git LFS 설정:
- Git LFS 설치:
- git lfs install
- 추적할 파일 유형 등록:
- git lfs track "*.uasset" git lfs track "*.umap"
- .gitattributes 파일에 등록된 항목 커밋:
- git add .gitattributes git commit -m "Configure Git LFS for Unreal Engine"
3. 파일 잠금 사용
팀 협업 시 동일한 .uasset 파일을 여러 사람이 동시에 수정하면 충돌이 발생할 가능성이 높습니다. 이를 방지하기 위해 Git LFS의 파일 잠금(Locking) 기능을 사용하면 특정 파일을 한 사람이 수정 중일 때 다른 사람은 읽기 전용으로 접근하도록 설정할 수 있습니다.
파일 잠금 예시:
- 파일 잠금:
- git lfs lock <file>
- 파일 잠금 해제:
- git lfs unlock <file>
4. 브랜치 관리와 병합 규칙
- 브랜치 전략
- 각 팀원은 자신의 작업 브랜치를 만들어 작업합니다.
- 작업이 완료되면 메인 브랜치에 병합하기 전, Pull Request를 생성하여 코드 리뷰를 받습니다.
- 병합 전 업데이트
- 병합 전에 항상 최신 메인 브랜치를 Pull하여 충돌을 미리 방지합니다.
git pull origin main
- 충돌 해결
- 충돌이 발생한 경우, 언리얼 엔진의 바이너리 파일은 충돌을 자동으로 해결할 수 없습니다. 이런 경우, 작업 파일을 재생성하거나 충돌 내용을 수동으로 해결해야 합니다.
5. 저장소 크기 관리
GitHub의 무료 플랜은 저장소 크기와 LFS 용량에 제한이 있습니다(기본 1GB). 따라서 저장소를 관리하기 위해 다음과 같은 방법을 사용할 수 있습니다:
- 불필요한 파일 삭제
- 오래된 브랜치를 정리하거나 필요하지 않은 파일을 삭제합니다.
- 정기적으로 압축
- 저장소를 정리하고 압축하여 크기를 줄입니다.
git gc --aggressive --prune=now
6. 협업 규칙 설정
- 커밋 메시지 표준화
- 팀원 간 일관성 있는 커밋 메시지를 작성하여 변경 사항을 명확히 기록합니다.
- 예: [Feature] 레벨 디자인 추가 또는 [Fix] 점프 애니메이션 오류 수정
- 정기적인 Pull Request
- 각 팀원은 작업 내용을 정기적으로 PR로 제출하여, 작업이 누락되거나 충돌이 발생하지 않도록 합니다.
- 코드 리뷰 문화
- 팀원이 작성한 코드를 리뷰하고, 변경 내용에 대한 피드백을 제공합니다.
결론
언리얼 엔진과 GitHub를 함께 사용하면 프로젝트의 버전 관리와 협업 효율성을 높일 수 있지만, 대규모 파일과 충돌 관리에 유의해야 합니다. 올바른 .gitignore 설정, Git LFS 사용, 브랜치 관리 등을 통해 문제를 사전에 예방하고, 팀의 협업 규칙을 명확히 정립하여 안정적으로 프로젝트를 운영해야 합니다.