Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

동구의_C# & Unity_개발일지

GIt 특강2 (Git - Unity) 본문

Git

GIt 특강2 (Git - Unity)

mongle_0l 2024. 1. 24. 19:33

 

Unity - Github Desktop Manual.pdf
2.85MB
Git 의 이해 - Unity.pdf
9.54MB

1. Git - Unity

 

 

용량이 크다는데요???

Github 의 용량제한

• Github 은 기본적으로 한 번에 100mb 정도 올릴 수 있다.

• Git LFS 라는것을 이용하면 1GB 이상 가능합니다. Github Desktop 을 이용한다면 세팅 옵션에서 바로 같이 설치 됩니다.

실제 나도 발생한 오류

 

내가 올린 파일이 그렇게 큰가??

별로 한거도 없는데…

 

Unity 프로젝트의 파일 구조

나의 Test 파일인데 2개의 파일이 더있네...?

 

보통 범인은 이 친구입니다.

용량이 800mb 가 넘어갑니다.

프로젝트가 좀만 커지면 1~2gb 정도는 우습게 넘어가는 친구입니다.

 

Unity 에서 협업할때 필요한 파일은 보통 3가지 입니다.

Assets / Packages / ProjectSettings

이 3개만 있으면 나머지는 없어도 됩니다.

따라서 Git 에는 이 3가지 경로 안에 있는 파일만 올리면 됩니다.

 

폴더를 다 올리려고 하면 용량이 부족할 수 있습니다.

.gitignore 를 설정하면 앞서 말한 나쁜 친구들은 git 에 올리지 않도록 자동으로 관리합니다.

반드시 각 팀장님들은 처음 만들 때 .gitignore 세팅하시길 강력히 권장드립니다.

나중에 하려면 귀찮은 일이 생깁니다.

 

 

2. 업무 분장

 

Git 을 사용하는 이유는 협업

 

우리가 Git 을 어려워 하는 이유는 무엇일까요?

Conflict

 

어떻게 하면 피할 수 있을까??

 

Conflict 의 원인

같은 코드라인은 건들면 발생

 

다른 코드라인이면 괜찮습니다.

아예 함수나 클래스가 다르다면 더욱더 안전합니다.

 

각자 작업의 파트를 분리하자!

해당하는 파트의 스크립트만 만들어서 생성 / 관리

특히 Unity 에서는 각 UI 별로 할일을 나누는 것하는것도 괜찮은 방법입니다.

 

Conflict 가 났다면 대화를 하며 어떤방식이 좋을지 풀어나갑시다.

 

Tip 1!

Git 은 한번 푸시를 했다면 기록이 남겨져 있습니다. 푸시만 되어 있다면 작업하다가 꼬여도 어떻게든 복구가 가능하니 작업내용을 각자 브런치에 잘 올려두세요.

 

Tip 2!

커밋은 한번에 하나의 작업 단위로 올리는게 좋습니다. 프로젝트 다 하고 한번에 올리는 내가 해당 내용을 위해 어떻게 작업했는지 알기 힘듭니다. 그리고 … Commit 등 의미없는 이름의 커밋보다 명확한 이름으로 어떤 작업을 했는지 남겨두세요. 기록만으로 프로젝트가 어떻게 진행됐는지 파악할 수 있습니다.

 

하지만 Unity 에는 C# Script 만 있는게 아닙니다.

서로 다른 사람이 씬에 배치된 바위를 옮긴다고 보겠습니다.

Unity 에서 씬 파일은 텍스트로 되어 있는 코드와는 다르게 Conflict 가 났을때 수정하기 매우 어렵습니다.

 

이 경우 다시 작업자들이 얘기해서 뭐가 바뀌었는지 대화를 통해 조정해야합니다.

 

단, Script 와 다른점은 중간이 없습니다. 둘중 한명의 작업만 남기고 다른 작업은 삭제 됩니다.

 

토론을 통해 누구것을 유지할지 정하면 다른 작업자가 다시 작업합니다.

보통 작업량이 비교적 적어서 빠르게 복구 할수 있는 쪽이 다시 작업합니다.

짬에서 밀리거나…ㅋㅋㅋ

 

각자 작업의 씬도 분리하자!

해당하는 씬에 필요한 기능과 UI 끼리 나누면 자동으로 업무 분장까지 가능

 

프리팹 활용

씬 위에 오브젝트가 프리팹으로 올라가 있을때 프리팹을 열어서 수정하면 씬은 수정된 것으로 취급 되지 않습니다.

물론 프리팹도 서로 다른 사람이 수정하면 충돌 나니 주의하시기 바랍니다.

 

씬이나 프리팹은 충돌시 수정이 어렵습니다.

따라서 본인이 맡은 부분 위주로 작업하는 것을 권장 드립니다.

단 다른 부분을 수정해야 한다면 단톡방을 통해 공유하고 진행합니다

 

동적 생성

씬에 오브젝트를 올려두지 않고 프로젝트 관리하는 방법

 

처음에 씬에는 시작시켜줄 매니저 하나면 올려둠

시작하면 Script 를 통해 필요한 오브젝트를 생성해서 사용


 

1. 프로젝트 세팅

- GitIgnore 를 세팅하고 진행하자

- 아니면 용량 문제가 생길 수 있다.

 

2. 협업 [업무 분장]

- Conflict 피하기

[Solution 1] 작업 파트를 시스템에 따라 분리

[Solution 2] 작업 파트를 씬에 따라 분리

[Solution 3] 같이 씬을 건들여야 한다면 프리팹 이용

[Solution 4] 프리팹의 동적 생성

 

씬이나 프리팹을 수정해야한다면 미리 공유하고 진행

 

- Conflict 해결하기

피할 수 없는 컨플릭트는 대화로 해결

 

Tip1. 모든 커밋을 푸시 후 기록이 남으니 어떻게든 복구가 가능하다

Tip2. 커밋은 단위 별로 나눠서 남기자 (커밋의 이름은 명확하게) - 한꺼번에 올리기X