Unreal TIL 17일차 - 팀 협업을 위한 Git 기초(1)

yys·2026년 3월 19일

TIL

목록 보기
14/86

fetch


로컬 리포지토리에 있는 내용을 원격 리포지토리로 보내려면 push를 해줘야 하고
원격 리포지토리에 있는 내용을 로컬 리포지토리로 가져오려면 pull을 해주면 된다.

하지만, 팀 협업의 경우 원격 리포지토리의 내용과 로컬 리포지토리의 내용이 다른 경우가 많고
무턱대로 중요한 작업을 한 뒤, pull 하고 push하려고 하면 충돌로 인해서 골치 아픈 일이 생길 수 있다.

이를 방지하는 명령어로 fetch가 있다.

fetch는 원격 리포지토리에 있는 내용을 로컬로 가져오되, 변경 기록만 가져올 뿐 수정 내용까지는 덮어쓰지 않는다.

아래 두 프로젝트가 있다고 가정하자.

현재는 두 프로젝트 현황이 다 똑같고, 화면에 표시된 3개의 브랜치들의 내용은 아래와 같다.

  • main: 현재 로컬 컴퓨터가 가리키고 있는 브랜치
  • origin/main: 원격 리포지토리에 있는 main 브랜치
  • origin/HEAD: 원격 리포지토리에 있는 기본(DEFAULT)브랜치

이후 팀원이 액터를 추가해서 내용을 원격 리포에 Push 했을 때, 브랜치의 상태는 아래와 같다.

이때, 팀원이 한 프로젝트를 Pull하여 병합하기 전에 패치를 통해 팀원이 어떠한 작업을 하였는지 확인한다.

특별한 이상이 없다면 원격 리포지토리의 내용을 로컬로 반영하는 Pull로 로컬의 위치도 이동시키면 된다.

  • 혹여나 같은 파일을 작업해서 충돌이 일어날 경우 팀원과의 상의가 필요하다.

branch


브랜치는 나만의 작업 공간을 구현하는데 활용되는 요소 중 하나이다.
간단한 작업은 이를 신경쓰지 않는 경우가 많지만, 프로젝트를 하게 되면 관리 측면에서 브랜치 전략이 꼭 필요하다.

유명한 브랜치 전략으로는 Git Flow / Github Flow 등이 있다.

일반적으로, main 브랜치는 가장 안정적이고 최신 릴리즈의 형태의 버전만 유지하기 때문에 테스트를 하고 싶다면 개별 브랜치를 파는 것이 좋다.

브랜치는 로컬/원격 두 가지 유형이 있다.

  • 소스트리 기준으로 '브랜치'라고 써져있는 것이 로컬, '원격'부분이 원격이다.

원격에 브랜치를 생성하고 싶다면 원격 리포지토리 - branch로 가서 추가를 하면 된다.

  1. 브랜치 생성 버튼
  2. 새로운 브랜치 이름
  3. 어디를 기점으로 브랜치를 생성할 것인지 선택 (현재는 main 밖에 없기에 고정)
  4. 브랜치 생성

브랜치를 만들었다면 다음과 같은 화면이 나타난다.

물론 로컬 리포지토리는 이 사실을 모르기 때문에 fetch/pull을 해줘야 한다.

  • 1/2를 하면 3처럼 업데이트가 된다.

로컬 브랜치를 만드려면 분기하고자 하는 브랜치에서 '브랜치'버튼을 누르고 생성하면 된다.

  • 이때 체크아웃은 바로 현재 브랜치에서 생성된 브랜치로 이동한다는 뜻이다.
  • 체크아웃은 현재 브랜치의 내용을 모두 커밋한 이후에 가능하다.

다음과 같이 로컬 브랜치가 생성된 화면을 볼 수 있다.

profile
게임 개발 지망생

0개의 댓글