> 개발 도구 > 자식 > git fetch와 git pull의 차이점을 살펴 보겠습니다.

git fetch와 git pull의 차이점을 살펴 보겠습니다.

coldplay.xixi
풀어 주다: 2021-04-26 16:46:00
앞으로
2405명이 탐색했습니다.

git fetch와 git pull의 차이점을 살펴 보겠습니다.

git fetch와 git pull은 모두 원격 저장소를 로컬 저장소로 업데이트할 수 있습니다. 그러면 이 문제를 명확히 하기 위해 언급해야 할 몇 가지 개념이 있습니다.

추천(무료): Git

FETCH_HEAD: 로컬 파일에 기록된 버전 링크로, 원격 창고에서 내려온 브랜치의 최종 버전을 가리킵니다.
commit-id: 각 로컬 작업이 완료된 후 현재 작업을 로컬 repo에 저장하기 위해 git commit 작업이 수행됩니다. 이때 고유한 일련 번호인 commit-id가 생성됩니다. 버전을 식별합니다. git push를 사용한 후에는 이 일련 번호가 원격 창고에도 동기화됩니다.

위 개념을 바탕으로 git fetch
git fetch에 대해 이야기해 보겠습니다. 이는 git 원격의 모든 원격 웨어하우스에 포함된 브랜치의 최신 커밋 ID를 업데이트하고 .git/FETCH_HEAD 파일
git에 기록합니다. fetch 원격 저장소를 업데이트하는 방법은 다음과 같습니다.

git fetch origin master:tmp 
//在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git diff tmp 
//来比较本地代码与刚刚从远程下载下来的代码的区别
git merge tmp
//合并temp分支到本地的master分支
git branch -d temp
//如果不想保留temp分支 可以用这步删除
로그인 후 복사

(1) git fetch를 직접 사용하는 경우 단계는 다음과 같습니다.

  • 로컬 원격 브랜치를 생성하고 업데이트합니다. 즉, Origin/xxx 분기를 생성 및 업데이트하고 코드를 Origin/xxx 분기로 가져옵니다.
  • FETCH_HEAD에서 현재 분기-원본/현재 분기 대응을 설정합니다. 직접 git merge를 수행하면 원본/abc가 abc 분기에 병합될 수 있습니다.

(2) git fetch Origin
가져올 리모컨을 수동으로 지정하면 됩니다. 브랜치를 지정하지 않으면 일반적으로 기본값은 master
입니다. (3) git fetch Origin dev
는 원격 원격 및 FETCH_HEAD를 지정하고 이 브랜치의 커밋만 가져옵니다.

git pull: 먼저 로컬 FETCH_HEAD 레코드를 기반으로 로컬 FETCH_HEAD 레코드를 원격 웨어하우스의 버전 번호와 비교한 다음 git fetch를 사용하여 현재 가리키는 원격 브랜치의 후속 버전 데이터를 가져온 다음 git merge를 사용하여 병합합니다. 로컬 현재 분기와 병합합니다. 따라서 git pull은 git fetch 및 git merge 두 단계의 조합이라고 간주할 수 있습니다.
git pull 사용법은 다음과 같습니다.

git pull <远程主机名> <远程分支名>:<本地分支名>
//取回远程主机某个分支的更新,再与本地的指定分支合并。
로그인 후 복사

따라서 git fetch는 원격에서 로컬로 최신 버전을 가져오지만 자동으로 병합되지는 않습니다.
그리고 git pull 은 모든 원격 인덱스를 가져와 로컬 브랜치 에 병합합니다. 효과가 동일하면 git pull이 더 빨라집니다.

위 내용은 git fetch와 git pull의 차이점을 살펴 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿