다음 주 팀프로젝트를 앞두고 Git과 협업시 주의할 점들을 조금 정리해봤다.
Git을 다른사람과는 사용해본적은 없지만,
혼자서 사용해봤을 때를 생각해보면 최고의 장점은 롤백 기능이라고 생각한다.
다만 혼자 사용할 때는 Push를 걱정없이 사용했지만,
팀프로젝트는 하나의 프로젝트를 여럿이 사용하기에 Push할 때 주의해야한다.

Branch는 분기를 나눈다는게 마치 평행세계를 만든다고 이해했다.
그래서 이번 팀프로젝트는 각자의 브랜치를 만들어 작업 후,
작업이 끝나면 main 브랜치로 Merge하는 방식으로 할 예정이다.

Merge는 브랜치와 브랜치를 합치는 것으로 이해했다.
분기를 만들어 나누는 것만으로는 문제가 없겠지만,
어찌됐든 게임을 완성시키려면 각자 만든 기능들을 하나로 합치는 과정은 필요하다.
이때 Merge를 통해 각자의 코드를 main브랜치에 합치게 된다.
// main 브랜치 기준
int value = 10;
예로 들어,
A가value의 값을 10으로 main에 병합한 상태일 때,
// B 브랜치
int value = 5;
B가 value를 5의 값으로 main에 병합하려고 한다면,
<<<<<<< HEAD
int value = 10;
=======
int value = 5;
>>>>>>> B-branch
Git은 어떤 값이 맞는건지 판단할 수 없어서 충돌이 일어난다.
변수 하나정도는 팀원과 상의 후 수정하면 되지만,
게임오브젝트나 씬이 충돌난다면? 🤯
1. 하나의 스크립트는 한명이 끝내기
2. 각자의 폴더만들고 내 폴더만 작업하기
3. 씬도 한명만 수정하거나, 내 폴더에 복사해서 작업하기
4. 테스트할 때도 씬을 따로 만들어서 테스트
5. ⭐소통하기⭐

내가 만든 에셋이면 상관없지만,
외부에셋을 import해서 사용한다면 Git은 그에셋들도 커밋에 포함시키게 된다.
에셋들을 전부 커밋하면 용량도 커지고, 라이선스 문제가 있기 때문에
.gitignore에 등록해서 Git이 무시하도록 처리하는 게 좋다.
커밋할 필요가 없는 외부 에셋들은 GitHub Desktop에서 폴더 채로 .gitignore에 추가할 수 있다.
하지만 팀원과는 어떻게 공유해야할까?
- 팀원 중 1명이
.unitypackage로 공유하기- 에셋들을
private으로 Git에서 관리하기