변경 내용을 가져오기 위한 옵션
다음 명령은 원격 리포지토리와 상호 작용할 때 매우 유용합니다. clone
과 fetch
는 리포지토리의 원격 URL에서 로컬 컴퓨터로 원격 코드를 다운로드하고, merge
는 다른 사람의 작업을 자신의 작업과 병합하는 데 사용되며, pull
은 fetch
와 merge
의 조합입니다.
리포지토리 복제
다른 사용자 리포지토리의 전체 복사본을 가져오려면 git clone
을 다음과 같이 사용합니다.
$ git clone https://github.com/USERNAME/REPOSITORY.git
# Clones a repository to your computer
리포지토리를 복제할 때 서로 다른 여러 URL 중에서 선택할 수 있습니다. GitHub에 로그인하는 동안 코드 를 클릭하면 리포지토리의 기본 페이지에서 이러한 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 fetch
와 git merge
를 완료하기 위한 편리한 방법입니다.
$ git pull REMOTE-NAME BRANCH-NAME
# Grabs online updates and merges them with your local work
pull
은 검색된 변경 내용에 대한 병합을 수행하므로, pull
명령을 실행하기 전에 로컬 작업이 커밋되었는지 확인해야 합니다. 해결할 수 없는 병합 충돌이 발생하거나 병합을 종료하기로 결정한 경우, 분기를 끌어오기 전의 위치로 되돌리는 데 git merge --abort
를 사용할 수 있습니다.