소스에서 작업할 때의 가장 큰 이점 중 하나는 에픽 팀이 언리얼 엔진(UE) 에 추가하는 최신 향상과 새로운 기능에 항상 액세스할 수 있다는 것입니다. 에픽이 소스 코드를 변경하고 새로운 공식 버전을 출시함에 따라 언리얼 엔진 GitHub 저장소의 다양한 분기(Branch)를 지속적으로 업데이트합니다. 에픽이 새 공식 버전을 퍼블리싱하거나 여러분에게 필요한 업데이트가 있을 때마다 이러한 변경사항을 주기적으로 적용하고 싶을 것입니다.
이 페이지에서는 메인 언리얼 엔진 저장소의 최신 변경사항과 일치하도록 포크(Fork)의 분기를 업데이트하는 데 사용할 수 있는 두 가지 접근 방식을 설명합니다.
업스트림 리모트 사용하기
이 접근법에서는 에픽게임즈 언리얼 엔진 저장소 원본을 포크의 로컬 사본에 새 원격 저장소로 추가합니다. 이를 일반적으로 업스트림 리모트(Upstream Remote) 라고 합니다. 해당 업스트림 리모트의 변경사항을 로컬 분기로 가져옵니다. 그런 다음 해당 변경사항을 일반적으로 원본 리모트 라고 하는 GitHub의 자체 포크에 다시 푸시할 수 있습니다.
처음에는 아래에 설명된 GitHub 풀 요청을 사용하는 것보다 까다로워 보일 수 있지만 이 접근법을 권장합니다. 여기에는 두 가지 이점이 있습니다.
- 업스트림 리모트를 구성한 후에는 포크의 동일한 로컬 복제본을 계속 사용하는 한 다시 구성할 필요가 없습니다. 이렇게 하면 프로젝트에 필요하다고 생각될 때마다 새로운 변경사항을 편리하게 선택할 수 있습니다.
- GitHub 풀 요청을 사용하여 포크를 업데이트할 때마다 분기에 새 커밋을 생성하고 프로젝트 기록에 새 풀 요청을 생성합니다. 이는 일반적으로 무해하지만 불필요한 항목은 피하는 것이 좋습니다.
아래 지침에서는 Git 명령줄 툴을 사용하여 새 리모트를 추가하고 변경사항을 적용하는 방법을 보여줍니다. GUI(Graphical User Interface, 그래픽 사용자 인터페이스) Git 클라이언트를 사용하는 경우 단계는 거의 동일합니다. 자세한 정보는 툴의 문서를 참조하세요.
GitHub 데스크톱을 사용하는 경우 포크를 복제하면 업스트림 리모트가 자동으로 생성됩니다. 업스트림 분기의 변경사항을 로컬 분기에 병합한 다음 해당 변경사항을 원본 저장소로 푸시하기만 하면 됩니다.
업스트림 리모트 구성
- 아직 복제하지 않았다면 포크를 컴퓨터에 복제합니다.
- 명령 프롬프트를 열고 저장소가 포함된 폴더로 이동합니다.
-
기본 에픽게임즈 저장소를
upstream이라는 새 원격 저장소로 추가합니다.> git remote add upstream https://github.com/EpicGames/UnrealEngine
포크로 변경사항 가져오기
-
업데이트하려는 분기를 체크아웃합니다. 예를 들어 다음과 같이 할 수 있습니다.
> git checkout ue5-main -
업스트림 리모트의 변경사항을 로컬 분기로 가져옵니다.
> git fetch upstream > git merge upstream/ue5-main -
변경사항을 원본 리모트로 푸시합니다.
> git push origin ue5-main
GitHub 풀 요청 사용
-
웹 브라우저에서 GitHub의 본인 저장소 홈페이지로 이동합니다. 일반적으로
https://github.com/<USERNAME>/UnrealEngine형식이며, 여기서<USERNAME>은 GitHub 사용자 이름입니다. -
분기(Branch) 메뉴에서 업데이트하려는 분기를 선택합니다. 에픽게임즈 언리얼 엔진 GitHub 페이지
README.md에는 사용 가능한 분기에 대한 정보가 있습니다.
-
일반적으로 포크에서 이 분기를 변경하지 않는 한 GitHub는 에픽게임즈 저장소에 이미 저장소의 모든 커밋이 있음을 알립니다.
-
포크 동기화(Sync Fork) 를 선택하면 포크에 동기화되지 않은 에픽게임즈 저장소의 모든 변경사항이 표시됩니다. 변경사항을 검사하려면 비교(Compare) 를 클릭합니다.
포크에 변경사항이 없다는 것을 알고 에픽게임즈 저장소에서 동기화할 수 있는 변경사항을 검토하고 싶지 않지만, 모든 최신 변경사항으로 업데이트하고 싶을 뿐이라면 분기 업데이트(Update Branch) 를 클릭합니다.
-
비교 를 선택하면 GitHub는 에픽게임즈 저장소에 있지만 포크에서는 누락된 커밋을 표시합니다. 상충이 있는 변경사항이 없으면 분기가 자동으로 병합될 수 있습니다. 변경사항 병합 프로세스를 시작하려면 풀 요청 생성(Create Pull Request) 을 클릭합니다.
-
풀 요청이 어떤 분기를 업데이트하는지 나타내는 간단한 설명을 입력합니다. 완료됐으면 풀 요청 생성 을 클릭합니다.
-
GitHub는 이 풀 요청에 포함된 변경사항을 표시합니다. 변경사항 목록 하단에서 풀 요청 병합(Merge Pull Request) 을 클릭합니다.
-
병합 확인(Confirm Merge) 을 클릭합니다.
병합이 완료되면 포크의 분기가 GitHub에서 최신 상태가 됩니다. 이제 Git 명령줄이나 선택한 시각적 툴을 사용하여 분기를 체크아웃하고 최신 변경사항을 로컬 컴퓨터로 가져올 수 있습니다.