일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- stateauthority
- 유니티
- 오브젝트 깜빡임
- m590 수리
- nav거리
- 유니티 머지
- githubdesktopmerge
- NavMesh
- m585 수리
- 유니티 해상도 설정
- 유니티 합치기
- unity merge
- networkobject.networkid
- unity 병합
- nav오브젝트사이거리
- 몬스터
- 깃허브 데스크탑 병합
- 깃허브 데스크탑 합치기
- Unity
- M590
- Github DeskTop Merge
- 유니티 해상도
- unity git
- m585
- 유니티 해상도 변경
- navigation
- networkobject
- 유니티 브랜치 merge
- networkbehaviourid
- Today
- Total
집게사장의 꿈
유니티 github desktop merge / 유니티 브랜치 병합 / 유니티 병합 충돌 / 유니티 깃데스크탑 병합 본문
순서
1. 깃에 브랜치 A 새로 생성
2. 브랜치A 에 작업하기
3. Main에 작업하기
4. 브랜치 A를 Main에 Pull Request[병합 요청] 보내기
5. Conflict나는 브랜치 A의 변경 사항을 Main 프로젝트를 가져와 수정하기
6. Merge
1. 깃에 브랜치 A 새로 생성
그렇게 생성된 Main을 Base로 한 브랜치 A
2. 브랜치 A의 Scene.unity의 파일 수정
- 변경 : 오브젝트 추가, 머테리얼 추가
- 변경 : 위의 Base 스크립트에서 아래 스크립트로 수정
-변경사항 저장
3. Main에 작업하기
-메인 변경
-리로드
- Main 브랜치
- 변경 : 실린더 추가, 머티리얼 수정 및 추가, 스크립트 수정
-저장 후 push
4. 브랜치 A를 Main에 Pull Request[병합 요청] 보내기
-브랜치 변경하고 클릭
- Base <- A를 확인하고 Create Pull request 클릭
-그 후 결과창에서 충돌 났다고 확인할 수 있음.
5. Conflict나는 작업한 브랜치 A에 브랜치 Main을 가져와 충돌 수정하기
-다시 Git DeskTop으로 오면 현재 Pull Request 번호[#5]를 확인할 수 있음. [처음하면 #1 입니다.]
- 여기서 중요한 거는 이제 충돌을 해결해줘야 되는데, 이것은 브랜치Main에 합병시키려는 브랜치A 에 브랜치Main의 내용을 가져와서 수정하고 합병을 시켜야 된다.
- 이렇게 선택 후 Merge
--충돌을 보여준다.
-만약 두 브랜치 중 1개의 파일에 있는 것만 사용하려면 밑줄 친 옵션 중에서 선택하면 된다.
-현재는 VS Code를 사용해서 git Graph를 추가하여 충돌을 수정한다.
-있으면 좋으니 설치하는 것도 좋을 것 같다.
- C.Mat에 대한 변경 사항을 Open in Visual studio Code를 사용해서 열어보면 이렇게 볼 수 있는데,
여기서 우리가 생각할 것은
Accept Incoming : 가져오는 파일 브랜치 Main의 내용
Accept Current : 현재 브랜치 A 파일의 내용
Accept Combination (Incoming #) : 조합[비추천]
Ignore : 무시
이 중에 하나로 선택하면 된다.
- 브랜치 A 내용을 사용할 것이기 때문에 Accept Current를 선택하고 Complete Merge를 눌르면 된다.
-깃 데스크탑에 돌아와 보면 C.mat만 Merge가 완료 되어 C.mat이 사라진 것을 수 있다.
- *.unity 씬도 위처럼 변경하면 되지만, A를 사용할 것이기에 해당하는 것을 클릭해주면 된다.
-스크립트 수정을 보면 해당하는 내용이 있는데, ======기준으로 위쪽 Head가 브랜치 A[녹색 라인] , 아랫쪽이 브랜치main[파란 라인]이다.
Accept Current : Head의 변경사항을 적용
Accept Incoming Change는 main의 변경사항을 적용
-나는 두개 다 사용할 것이기에 Both를 누르고, 사용한다.
-저장을 누르고 나오면 Continue merge를 눌르면 된다.
-변경사항 Push
6. Merge
-다시 깃 사이트로 돌아와 보면 A에 대한 변경사항이 바뀐 것을 볼 수 있고, 충돌이 나지 않아 Merge가 되는 것을 확인할 수 있다.
-Merge 완료
- 다시 깃 데스크탑으로 돌아와 보면 Pull Request에 대한 번호가 사라졌고, 다시 Pull Request요청이 가능하다.
-다시 main으로 돌아와 Fetch -> Pull을 하면
-Branch A의 변경사항이 적용이 된것을 확인할 수 있다.
- Main으로 돌아가 보면 Main -> A 로 한 작업으로 인해 A.mat, B.mat 이 바뀐 것을 볼 수 있다.[A.mat, B.mat은 Base[main]파일에 존재하던 것]
- 반면 C.mat은 각 브랜치 A와 브랜치 Main에서 새로 생성한 Material로 인한 변경사항을 수정하였기 때문에 브랜치A의 변경사항으로 적용하는 것으로 했기에 브랜치 A의 내용이 유지되었다.
- 씬 파일인 *.unity는 브랜치 A의 내용을 그대로 사용한다고 변경하였기에 브랜치A의 내용이 유지되었다.
- 스크립트 파일인 Test는 두 코드를 모두 사용하는 Both를 선택하였기에 해당 내용이 반영이 되었다.
비교샷
최종 정리
- 개인 브랜치에서 작업
- 개인브런치에서 Pull Request를 요청한 브랜치와 충돌 확인
- 충돌난 브랜치를 개인 브랜치에 Pull
- 개인 브랜치에서 충돌나는 것을 수정
- 수정된 결과물 확인 후 개인브랜치에 Push
- Pull Request에서 충돌 확인 후 Merge
같은 이름으로 충돌되는 파일이 있다면, 변경사항을 조정해줘야된다.
'Git' 카테고리의 다른 글
No ‘git’ executable was found. Please install Git on your system and restart Unity (0) | 2024.08.26 |
---|