Git Fetch: 마스터 클래스

게시 됨: 2023-02-26
백그라운드에 지구본 패턴과 바이너리 워터마크가 있는 터미널 창을 보여주는 Linux 노트북
fatmawati achmad zaenuri/Shutterstock.com
git fetch 명령은 작업 파일을 덮어쓰지 않고 원격 저장소의 정보와 커밋으로 로컬 저장소를 업데이트하는 git pull 명령과 같습니다.

Git fetch 명령을 사용하면 도약하기 전에 확인할 수 있습니다. 로컬 파일을 원격 파일로 덮어쓰지 않고 원격 리포지토리에 적용된 변경 사항을 검색할 수 있습니다.

목차

git fetch는 무엇이며 어떤 기능을 합니까?
힘내 가져오기 대 당기기
git fetch로 로컬 및 원격 리포지토리 동기화
가져온 태그 모두 보기
먼저 모의 실행하기
단일 분기를 가져오는 방법
모든 지점 가져오기
로컬 및 원격 분기 비교
로컬 분기를 원격 분기와 동기화
반 훈련 강아지

git fetch는 무엇이며 어떤 기능을 합니까?

Git의 fetch 오기 명령은 커밋, 파일 및 기타 정보를 원격 저장소에서 로컬 저장소로 안전하게 다운로드합니다. 변경 사항을 강제로 적용하지 않고 다른 개발자가 변경한 사항을 확인하려면 가져오기를 사용하세요. 로컬 파일은 그대로 유지됩니다. 그게 왜 중요한가요?

개발 팀의 일원으로 일할 때는 현명함을 유지해야 합니다. 원격 또는 중앙 리포지토리에는 다른 개발자가 만들고 원격 리포지토리에 푸시한 변경 사항 및 새 분기가 포함됩니다.

컴퓨터에서 로컬로 수정한 파일의 원격 복사본을 다른 사람이 업데이트했을 가능성이 전적으로 있습니다. 로컬 리포지토리를 업데이트하기 위해 우연히 git pull 수행하는 경우 원하지 않는 변경 사항에 대한 병합을 직접 처리하게 될 수 있습니다.

정보를 다운로드한 후에는 정보를 검토하고 변경 사항을 확인할 수 있습니다. 이를 통해 지금 당장 병합할 항목과 나중에 병합할 항목에 대해 정보에 입각한 선택을 할 수 있습니다.

힘내 가져오기 대 당기기

git fetch 명령은 git pull 명령처럼 작동하지만 로컬 파일을 덮어쓰는 단계가 없습니다 . 로컬 리포지토리가 업데이트되고 동기화되지만 변경 사항이 로컬 리포지토리의 작업 상태에 기록되지 않으므로 파일은 그대로 유지됩니다.

또는 다른 말로 하면 git pull 명령은 git fetch 다음에 바로 git merge 오는 것과 같습니다.

git fetch로 로컬 및 원격 리포지토리 동기화

업데이트된 모든 메타데이터와 커밋을 원격 리포지토리에서 로컬 리포지토리로 가져오려면 원격 리포지토리의 이름 또는 URL과 함께 git fetch 명령을 사용합니다. 기본적으로 첫 번째 원격 리포지토리를 "origin"이라고 합니다.

 자식 가져오기 원본

단일 원격 리포지토리로 작업하는 경우 "origin"이라는 단어를 생략할 수 있습니다.

 자식 가져오기 

기본 원격 저장소에서 git fetch 명령 사용

"원본" 저장소에서 모든 업데이트를 검색하지만 변경 사항을 작업 파일에 병합하지는 않습니다. 우리를 위해 검색된 "new-branch"라는 새 분기가 있음을 볼 수 있습니다.

fetch 명령을 사용한 후에는 분기 명령과 함께 -r (원격) 옵션을 사용하여 원격에서 분기의 전체 목록을 볼 수 있습니다.

 자식 분기 -r 

기본 리모트에 존재하는 브랜치 보기

여기에는 리모트가 알고 있는 모든 브랜치가 나열되며, fetch 이후에도 로컬 저장소에 있습니다.

가져온 태그 모두 보기

마찬가지로 tag 옵션("s"가 없는 "tag"임)을 사용하여 태그 목록을 볼 수 있습니다.

 자식 태그 

git tag 명령을 사용하여 로컬 저장소의 태그 나열

관련: Git Remote를 전환, 추가 및 제거하는 방법

먼저 모의 실행하기

git fetch 변경 사항을 작업 파일에 병합하지 않지만 여전히 로컬 저장소를 업데이트합니다. fetch 명령이 실제로 수행하지 않고 어떤 변경을 수행하는지 확인하려면 --dry-run 옵션을 사용하십시오.

 자식 가져오기 --드라이런 

--dry-run 옵션을 사용하여 가져오기 명령이 검색하는 변경 사항을 확인합니다.

단일 분기를 가져오는 방법

단일 지점에 대한 정보를 가져오는 것은 쉽습니다. 분기 이름을 명령줄에 추가하여 가져 fetch 에 해당 분기에 대해서만 알 필요가 있음을 알립니다.

여기에서는 원격 저장소 "origin"에서 "mary-feature" 분기를 검색하도록 가져오기에 fetch 합니다.

 git fetch origin 메리 기능 

git fetch를 사용하여 단일 원격 브랜치 검색

이제 원격 브랜치의 세부 정보와 콘텐츠가 로컬 저장소에 있으므로 git checkout 명령을 사용하여 새 브랜치를 만들고 원격 브랜치를 체크아웃할 수 있습니다. 이 분기를 처음 사용하는 경우 기존 파일을 덮어쓰지 않습니다.

 git checkout -b 메리 기능 원본/메리 기능 

검색된 원격 분기를 새 로컬 분기로 안전하게 체크아웃

모든 지점 가져오기

여러 원격을 사용하는 경우 --all 옵션을 사용하여 모든 분기의 모든 변경 사항을 로컬 리포지토리로 다시 가져오면 시간을 절약할 수 있습니다.

 자식 가져오기 --모두

로컬 및 원격 분기 비교

원격 브랜치의 파일이 로컬 복사본과 어떻게 다른지 확인하려면 git fetch 사용한 다음 git log 명령을 사용하십시오.

로컬 및 원격 브랜치에는 " .. "로 구분되는 두 개의 마침표가 있습니다. --oneline 옵션은 커밋 식별자와 커밋 메시지를 보여줍니다.

 자식 가져오기
 git log --oneline 메리-기능..오리진/메리-기능 

git을 사용하여 원격 변경 사항을 가져오고 git log를 사용하여 변경 사항 표시

분기에 많은 변경 사항이 포함된 경우 한 줄 표시가 유용합니다. 좀 더 자세한 정보를 보려면 --oneline 옵션을 생략하십시오.

 자식 로그 메리-기능..원본/메리-기능 

--oneline 옵션을 생략하여 git이 각 커밋에 대한 자세한 내용을 표시하도록 함

여기에는 커밋 메시지 및 변경 작성자의 연락처 세부 정보와 함께 각 커밋의 시간과 날짜가 표시됩니다.

로컬 분기를 원격 분기와 동기화

계속해서 원격 브랜치의 변경 사항을 로컬 작업 파일에 병합하기로 결정한 경우 다음 명령을 사용할 수 있습니다.

현재 작업 중인 브랜치인지 확인하기 위해 브랜치를 체크아웃합니다.

 git checkout 메리 기능 

지점 확인

브랜치가 우리를 위해 체크아웃되었으며 원격 버전 뒤에 있다고 들었습니다. git pull 사용하여 업데이트한 다음 git status 사용하여 상태를 확인할 수 있습니다.

 힘내
 자식 상태 

rmeote 저장소에서 로컬 저장소로 변경 사항 가져오기

로컬 파일을 일부 변경한 경우 분기를 체크아웃할 때 Git에서 병합을 시작하려면 git pull 수행해야 한다고 알려줍니다.

 git checkout 메리 기능 

로컬 및 원격 brnahce가 분기되어 병합해야 함을 알려주는 Git

간단한 git pull 파일 검색 및 병합 프로세스를 시작하거나 바로 들어가서 git merge 자체를 사용할 수 있습니다. 올바른 브랜치로 작업하고 있는지 확인하는 것부터 시작하겠습니다.

 git checkout 메리 기능 

로컬 및 원격 brnahce가 분기되어 병합해야 함을 알려주는 Git

git 현재 브랜치를 원격 저장소의 브랜치와 병합하라고 지시할 것입니다. 해결해야 할 커밋이 6개 있습니다.

성공적인 병합 메시지

병합하려는 원격 브랜치를 Git에 알려야 합니다.

 자식 병합 원본/메리 기능 

git merge를 사용하여 원격 변경을 로컬 브랜치로 병합

커밋 메시지를 제공할 수 있는 편집기가 열립니다. 제안된 메시지를 수락하거나 직접 추가할 수 있습니다. Git이 다른 편집기를 사용하도록 구성되지 않은 경우 편집기가 기본 편집기입니다.

커밋 메시지 편집

진행할 준비가 되면 변경 사항을 저장하십시오. 편집기가 닫히면 병합이 자동으로 수행됩니다.

충돌이 없었기 때문에 병합이 성공적이었습니다.

성공적인 병합 메시지

두 명 이상의 개발자가 동일한 코드 줄을 변경할 때 충돌이 발생합니다. 이 경우 Git은 영향을 받는 파일에서 충돌을 표시합니다. 차례로 검토하고 유지할 변경 사항을 선택해야 합니다.

반 훈련 강아지

훈련 중인 강아지처럼 fetch 요청한 항목을 검색하지만 삭제하지는 않습니다. 강아지가 보여준 것을 실제로 pull .

관련: Git rebase: 알아야 할 모든 것