이번 프로젝트의 핵심
올해 3월 시작한 제노사이드 프로젝트는, 4명의 개발자와 1명의 디자이너가 협업한 프로젝트다.
나에게 있어 디자이너와 협업하는 첫 프로젝트였으며, 모든 에셋이 자체 제작이었던 만큼 저작권 문제가 가장 중요했다.
Private 리포지토리로 만들면 되는 거 아냐?
물론 내가 모든 프로젝트의 목표를 출시로 두긴 했지만, 기본적으론 동아리 활동이며, 우리 동아리는 모든 코드와 리포지토리를 공개한다는 원칙을 갖고 있다.
이는 다른 사람들의 코드, 협업 방식, 위키나 PR 작성법 등을 서로 보며 배우기 위함이다. 나또한 이 생각에 동의했고, 코드는 공개, 에셋은 비공개라는 원칙을 세우게 되었다.
Public 리포지토리에서 에셋을 보호한다고?
물론 이는 상당히 모순적인 상황이다.
가장 간단한 방법은 구글 드라이브, 카카오톡, 디스코드 등 외부 저장소를 이용해 공유하는 방법이다.
하지만 우린 유니티로 개발 중이었으며, 같은 에셋이라도 meta 파일이 다르면 연결이 끊어지는 현상이 발생한다.
단순히 파일만 공유해선 안 된다. 유니티 Assets 폴더 내에, 만들어진 그대로 공유해야 한다.
그렇기에 떠올린 방법이 바로 public 리포지토리 내에 private 리포지토리 만들기였다.
어떻게 만드는데?
다행히(?) 방법은 매우 간단하다.
먼저 Public, Private 리포지토리를 하나씩 만든다.
다음으로 본인의 컴퓨터에 Public 리포지토리를 로컬 저장소를 클론한다.
이제 Private 리포지토리를 Public 리포지토리 안에 클론한다.
그 후 폴더로 가보면, 위처럼 Public 리포지토리 내에 Private 리포지토리가 클론되어 있다.
만약 유니티 프로젝트를 만든다면, 프로젝트 생성 후 Assets 폴더 내에 새 폴더를 만들고, 그 안에 넣는 걸 추천한다.
Private 리포지토리는 오직 공유가 목적이었기에 브랜치 전략 없이 main에만 푸쉬/풀했다. 그럼에도 아무 문제 없이 프로젝트를 진행할 수 있었다.
이게 끝?
나는 여기서, Private 리포지토리 내 커밋한 파일이 Public 리포지토리에도 커밋될까봐 gitignore에 Private 리포지토리 전체를 추가했었다.
이렇게 공유하지 않을 무언가를 Private 리포지토리 내에 추가했을 때, Public 리포지토리로 가면 파일이 뜰 줄 알았는데...
Public 리포지토리엔 txt 파일이 나타나지 않는 것을 확인할 수 있었다. 아마 Git이 알아서 리포지토리를 분리해주는 것 같다.
그럼에도 만약 파일이 Public 리포지토리에 나타난다면, 그때가서 Private 리포지토리 폴더를 .gitignore에 추가해도 괜찮을 것 같다.
팀원과 공유는 어떻게?
팀원들도 모두 위의 방식을 따라하면 된다. 이때, 모두 같은 경로에 private 리포지토리를 클론하는 것만 주의하자.
더 정확히는, public 리포지토리 안에 바로 클론했다면 모든 팀원이 바로 클론하고, 폴더를 만들고 그 안에 클론했다면 똑같이 폴더를 만들고 클론해야 한다.
그럼 코딩 중 경로를 이용해 파일을 꺼내더라도, 별도의 처리 없이 프로그램을 돌릴 수 있다.
이제, 우리 에셋이 무단으로 사용될까 전전긍긍하지 말고 편하게 코딩하자!
참고 자료
- 를 적고 싶지만 냅다 떠올라서 해본 거기 때문에 참고한 게 없다. 하하...
'GitHub' 카테고리의 다른 글
[GitHub] Push한 커밋 삭제하기 (0) | 2023.09.02 |
---|