스택큐힙리스트

GitHub에서 포크한 저장소를 업데이트하거나 동기화하는 방법은 무엇인가요? 본문

카테고리 없음

GitHub에서 포크한 저장소를 업데이트하거나 동기화하는 방법은 무엇인가요?

스택큐힙리스트 2024. 1. 11. 23:09
반응형

나는 프로젝트를 포크하고 변경 사항을 만들어서 pull 요청을 생성했습니다. 이 요청이 승인되었습니다. 이후에 새로운 커밋이 해당 저장소에 추가되었습니다. 이러한 커밋을 내 포크에 어떻게 가져올 수 있을까요?

답변 1

로컬로 복제한 포크 저장소에서 원본 GitHub 저장소를 원격(remote)으로 추가할 수 있습니다. (원격(remote)은 저장소의 URL에 대한 별명과 같습니다. 예를 들어, origin은 하나의 원격(remote)입니다.) 그런 다음 원격(upstream) 저장소에서 모든 브랜치를 가져오고 원본 버전에서 작업을 계속하기 위해 작업을 다시 베이스(rebase)할 수 있습니다. 명령어로 표현하면 다음과 같습니다:


# upstream이라는 이름의 원격(remote) 추가:
git remote add upstream https://github.com/whoever/whatever.git
# 그 원격(remote)의 모든 브랜치를 원격 추적 브랜치로 가져오기
git fetch upstream
# 자신의 마스터 브랜치에 있는지 확인:
git checkout master
# 자신의 마스터 브랜치를 재작성하여
# 이미 upstream/master에 없는 자신의 커밋이
# 해당 브랜치의 맨 위에 재생성되도록 함:
git rebase upstream/master

만약 당신이 마스터 브랜치의 히스토리를 다시 쓰고 싶지 않다면(예를 들어, 다른 사람들이 클론한 것일 수도 있으므로), 마지막 명령어를 git merge upstream/master로 대체해야 합니다. 그러나 가능한 한 깨끗한 추가 풀 리퀘스트를 작성하기 위해서는 리베이스하는 것이 더 좋습니다.


브랜치를 upstream/master 위로 리베이스했다면, GitHub에서 자신의 포크된 저장소로 푸시하기 위해 푸시를 강제해야 할 수도 있습니다. 그렇게 하려면 다음을 실행하세요:


git push -f origin master

리베이스 이후 처음 한 번만 -f를 사용해야 합니다.

답변 2

깃허브에서 포크된 저장소를 업데이트하거나 동기화하는 방법에 대해 배워보도록 하겠습니다. 포크된 저장소는 원본 저장소의 복제본이며, 원본 저장소 이후에 변경된 내용들을 가져와 이를 반영하고 싶을 때 업데이트 또는 동기화를 수행해야 합니다.
업데이트 또는 동기화하는 방법은 쉽습니다. 아래 단계를 따라하면 됩니다:
1. 포크한 저장소로 이동하여 포크한 저장소의 웹페이지로 이동합니다.
2. 저장소 이름 아래에 Fetch upstream이라고 표시된 버튼을 찾습니다. 이 버튼을 클릭하여 원본 저장소의 변경 사항 가져오기 페이지로 이동합니다.
3. 변경 사항 가져오기 페이지에서 Fetching upstream 버튼을 클릭합니다. 이 버튼을 클릭하면 원본 저장소의 변경 사항을 가져와 로컬 컴퓨터(포크된 저장소)로 저장하게 됩니다.
4. 이제 로컬 컴퓨터에 있는 포크된 저장소로 돌아갑니다. 여기서 터미널이나 명령 프롬프트를 열어야 할 수도 있습니다.
5. 포크된 저장소의 디렉토리로 이동하여 명령어를 입력합니다. 명령어는 다음과 같습니다:
```
git fetch upstream
```
6. 위 명령어를 실행하면 원본 저장소에서 가져온 변경 사항들이 로컬 컴퓨터에 업데이트됩니다. 이제 원본 저장소의 변경 사항을 포크된 저장소에 반영할 준비가 되었습니다.
7. 아래 명령어를 입력하여 포크된 저장소를 업데이트합니다:
```
git merge upstream/master
```
이 명령어는 원본 저장소의 변경 사항을 포크된 저장소에 병합합니다. 이 단계에서 충돌이 발생할 수 있습니다. 충돌하는 파일은 수동으로 해결해야 합니다.
8. 실행한 명령어가 정상적으로 실행되면, 포크된 저장소가 원본 저장소의 변경 사항과 동기화됩니다.
이제 깃허브에서 포크된 저장소의 업데이트 또는 동기화 방법에 대해 알아보았습니다. 이를 참고하여 포크된 저장소를 항상 최신 상태로 유지할 수 있습니다. 효과적으로 업데이트하고 동기화하는 것은 협업 및 개발 프로세스를 원활하게 만드는 데 매우 중요합니다. 이 방법을 활용하여 깃허브에서의 작업을 원할하게 수행할 수 있기를 바랍니다.

반응형
Comments