내일배움캠프 30일차 - Git 5 (언리얼 협업을 위한 깃 기초 4, Merge, Conflict)
Git 사용법 1편 링크(설치, clone, commit, push)
Git 사용법 2편 링크(gitignore, gitattributes, commit)
Merge
변경사항을 합치는 작업.
"Merge A브랜치 into current branch"라고 할 때, A브랜치는 신규 작업 내용이 있는 브랜치. current branch는 신규 작업 내용이 반영되어야 하는 브랜치를 뜻한다.
소스트리 기준 설명
※ [Merge 전 주의사항 1번] 반드시 언리얼 에디터 종료 후 소스트리 새로고침(F5)
※ [Merge 전 주의사항 2번] 반드시 변경사항 확인하기
우선 작업중인 Feature 로컬 브랜치로 체크아웃해서 변경사항을 저장한다.
1) Stage All
2) 커밋 메세지 작성.
3) Commit 버튼 클릭
Commit에 성공한 모습. Feature 로컬 브랜치와 main 로컬 브랜치 차이가 난다.
※ 주의사항: Commit만 해야함. Push까지 하면 리모트에도 반영이 되므로 팀원에게도 영향이 간다.
main 로컬 브랜치에서 새 로컬 브랜치 변경사항 합치기
로컬 브랜치의 변경사항을 main(모든 팀원들과 작업한 내용이 담긴 브랜치)에 합친다.
변경사항을 push하지 않았다면, Merge를 해서 문제가 발생하면 내 로컬작업물만 문제가 발생하고 팀원에게는 영향을 미치지 않는다.
※ [Merge 전 주의사항 3번] Merge 직전에는 반드시 Fetch/Pull을 먼저 한다.
: 작업중에 팀원이 main 리모트 브랜치에 작업물을 올렸을지도 모르므로 항상 로컬 브랜치를 업데이트하도록 한다.
main 로컬 브랜치로 체크아웃 해서 Fetch/Pull을 먼저하고 Merge를 진행.
1) 변경사항을 끌어들일 로컬 브랜치(예: main)로 이동
2) 변경사항이 있는 로컬 브랜치를 우클릭 → "Merge (로컬 브랜치) into current branch" 클릭
이때, 실수로 Merge하지 않도록 다이얼로그가 띄워진다.
Merge에 성공한 모습. main 로컬 브랜치와 Feature 로컬 브랜치가 같은 커밋에 위치하게 된다.
Push버튼을 누르면 main 리모트 브랜치에도 반영된다.push를 해야 리모트에 반영이 되므로 잊지말고, 팀원에게 미리 main을 push함을 고지하도록 하자.
1) 로컬 브랜치 확인
2) 리모트 브랜치 확인
3) Push버튼 클릭
※ Push전에 팀원이 main브랜치에 변경사항을 갱신(Push)했다면...
기존 main 로컬 브랜치를 지우고, 리모트 main브랜치를 다시 받아 내용물을 갱신하고 다시 Merge를 시도한다.
Conflict
팀원이 먼저 작업내용을 리모트에 올린 상태에서 나도 같은 파일을 수정해서 올릴 때 발생하는 충돌상황을 뜻한다.
| 충돌 경고창. |
1) 어떤 로컬 브랜치에도 체크아웃 되어있지 않음.
2) detected head라고 적혀있음. Head라는 임시 브랜치에 체크아웃된 상태라고 보면 된다.
| File Status 상황. 주황색 삼각형 파일은 충돌이 난 파일이란 뜻. |
댓글
댓글 쓰기