Skip to main content

원격 리포지토리에서 변경 내용 가져오기

다음 명령은 원격 리포지토리와 상호 작용할 때 매우 유용합니다. clonefetch는 리포지토리의 원격 URL에서 로컬 컴퓨터로 원격 코드를 다운로드하고, merge는 다른 사람의 작업을 자신의 작업과 병합하는 데 사용되며, pullfetchmerge의 조합입니다.

다른 사용자 리포지토리의 전체 복사본을 가져오려면 git clone을 다음과 같이 사용합니다.

$ git clone https://.com/USERNAME/REPOSITORY.git
# Clones a repository to your computer

리포지토리를 복제할 때 서로 다른 여러 URL 중에서 선택할 수 있습니다. 에 로그인하는 동안 코드를 클릭하면 리포지토리의 기본 페이지에서 이러한 URL을 사용할 수 있습니다.

리포지토리의 기본 페이지 스크린샷입니다. 녹색 “코드” 단추는 주황색 윤곽선으로 표시되고 리포지토리의 HTTPS URL을 표시하도록 확장됩니다.

git clone을 실행할 때 다음과 같은 동작이 발생합니다.

  • repo라는 새 폴더가 만들어짐
  • Git 리포지토리로 초기화됨
  • 복제한 URL을 가리키는 원격 이름 origin이 만들어짐
  • 리포지토리의 모든 파일 및 커밋이 다운로드됨
  • 기본 분기가 체크 아웃됨

원격 리포지토리의 모든 분기 foo에 대해 해당 원격 추적 분기 refs/remotes/origin/foo가 로컬 리포지토리에 만들어집니다. 일반적으로 이러한 원격 추적 분기 이름을 origin/foo로 축약할 수 있습니다.

다른 사용자가 수행한 새 작업을 검색하려면 git fetch를 사용합니다. 리포지토리에서 페치하면 변경 내용이 자신의 분기에 병합되지 않은 채 모든 새 원격 추적 분기 및 태그를 가져오게 됩니다.

원하는 프로젝트에 대해 원격 URL이 설정된 로컬 리포지토리가 이미 있는 경우 터미널에서 git fetch *remotename*을 사용하여 모든 새 정보를 가져올 수 있습니다.

$ git fetch REMOTE-NAME
# Fetches updates made to a remote repository

아니면 항상 새 원격을 추가한 다음 페치할 수 있습니다. 자세한 내용은 원격 리포지토리 관리을(를) 참조하세요.

병합은 로컬 변경 내용을 다른 사용자가 변경한 내용과 결합합니다.

일반적으로 원격 추적 분기(즉, 원격 리포지토리에서 페치한 분기)를 로컬 분기와 병합합니다.

$ git merge REMOTE-NAME/BRANCH-NAME
# Merges updates made online with your local work

git pull은 동일한 명령에서 git fetchgit merge를 완료하기 위한 편리한 방법입니다.

$ git pull REMOTE-NAME BRANCH-NAME
# Grabs online updates and merges them with your local work

pull은 검색된 변경 내용에 대한 병합을 수행하므로, pull 명령을 실행하기 전에 로컬 작업이 커밋되었는지 확인해야 합니다. 해결할 수 없는 병합 충돌이 발생하거나 병합을 종료하기로 결정한 경우, 분기를 끌어오기 전의 위치로 되돌리는 데 git merge --abort를 사용할 수 있습니다.