'git fetch'와 'git pull'의 차이점
git fetch와 git pull은 모두 원격 저장소를 로컬 저장소로 업데이트할 수 있습니다. 그러면 이 문제를 명확히 하기 위해 언급해야 할 몇 가지 개념이 있습니다.
FETCH_HEAD: 는 로컬 파일에 기록된 버전 링크로, 원격 창고에서 내려온 지점의 최종 버전을 가리킵니다.
commit-id: 각 로컬 작업이 완료된 후 현재 작업을 로컬 저장소에 저장하기 위해 git 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
remote 원격 및 FETCH_HEAD를 지정하고 이 브랜치의 커밋만 가져옵니다.
이 명령은 원격 창고에 액세스하여 아직 가지고 있지 않은 모든 데이터를 가져옵니다. 실행이 완료되면 해당 원격 저장소의 모든 분기에 대한 참조를 갖게 되며 언제든지 병합하거나 볼 수 있습니다.
git clone 명령을 사용하여 리포지토리를 복제하면 이 명령은 해당 리포지토리를 자동으로 원격 리포지토리로 추가하고(git remote -v) 기본적으로 "origin"을 약어로 사용합니다. 따라서 git fetch Origin은 복제(또는 마지막 가져오기) 이후 새로 푸시된 모든 작업을 가져옵니다. git fetch 명령은 데이터를 로컬 저장소로 가져옵니다. 현재 작업을 자동으로 병합하거나 수정하지는 않습니다. 준비가 되면 작업에 수동으로 통합해야 합니다.
원격 브랜치를 추적하도록 브랜치를 설정한 경우 git pull 명령을 사용하여 자동으로 원격 브랜치를 가져와서 현재 브랜치에 병합할 수 있습니다. 이는 더 쉽고 편안한 작업 흐름일 수 있습니다. 기본적으로 git clone 명령은 복제된 원격 저장소의 마스터 브랜치(또는 기본 브랜치가 호출되는 모든 것)를 추적하도록 자동으로 로컬 마스터 브랜치를 설정합니다. git pull을 실행하면 일반적으로 원래 복제된 서버에서 데이터를 가져오고 자동으로 현재 분기에 병합을 시도합니다.
git pull: 먼저 로컬 FETCH_HEAD 레코드를 기반으로 로컬 FETCH_HEAD 레코드를 원격 웨어하우스의 버전 번호와 비교한 후 git fetch를 사용하여 현재 가리키는 원격 브랜치의 후속 버전 데이터를 가져온 다음 git merge를 사용하여 병합합니다. 로컬 현재 분기와 병합합니다. 따라서 git pull은 git fetch와 git merge의 두 단계를 조합한 것이라고 볼 수 있습니다.
git pull의 사용법은 다음과 같습니다.
git pull <远程主机名> <远程分支名>:<本地分支名> //取回远程主机某个分支的更新,再与本地的指定分支合并。
따라서 git pull과 비교할 때 git fetch는 원격에서 로컬로 최신 버전을 가져오는 것과 동일하지만 자동으로 병합되지는 않습니다. 선택적으로 병합해야 한다면 git fetch가 더 나은 선택입니다. 효과가 동일하면 git pull이 더 빨라집니다.
참고: git pull을 사용하여 코드를 업데이트하는 것은 비교적 간단하고 폭력적입니다. 그러나 커밋 ID에 따라 실제 구현 원칙이 다르므로 git pull을 사용하지 않는 것이 더 안전합니다.
추천 튜토리얼: "Git"
위 내용은 'git fetch'와 'git pull'의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Go Language의 부동 소수점 번호 작동에 사용되는 라이브러리는 정확도를 보장하는 방법을 소개합니다.

H5 프로젝트를 실행하려면 다음 단계가 필요합니다. Web Server, Node.js, 개발 도구 등과 같은 필요한 도구 설치. 개발 환경 구축, 프로젝트 폴더 작성, 프로젝트 초기화 및 코드 작성. 개발 서버를 시작하고 명령 줄을 사용하여 명령을 실행하십시오. 브라우저에서 프로젝트를 미리보고 개발 서버 URL을 입력하십시오. 프로젝트 게시, 코드 최적화, 프로젝트 배포 및 웹 서버 구성을 설정하십시오.

GiteEpages 정적 웹 사이트 배포 실패 : 404 오류 문제 해결 및 해결시 Gitee ...

Beegoorm 프레임 워크에서 모델과 관련된 데이터베이스를 지정하는 방법은 무엇입니까? 많은 Beego 프로젝트에서는 여러 데이터베이스를 동시에 작동해야합니다. Beego를 사용할 때 ...

GO의 어떤 라이브러리가 대기업이나 잘 알려진 오픈 소스 프로젝트에서 개발 했습니까? GO에 프로그래밍 할 때 개발자는 종종 몇 가지 일반적인 요구를 만납니다.

Go Language에서 메시지 대기열을 구현하기 위해 Redisstream을 사용하는 문제는 Go Language와 Redis를 사용하는 것입니다 ...

코드 취약점, 브라우저 호환성, 성능 최적화, 보안 업데이트 및 사용자 경험 개선과 같은 요소로 인해 H5 페이지를 지속적으로 유지해야합니다. 효과적인 유지 관리 방법에는 완전한 테스트 시스템 설정, 버전 제어 도구 사용, 페이지 성능을 정기적으로 모니터링하고 사용자 피드백 수집 및 유지 관리 계획을 수립하는 것이 포함됩니다.

sql.open을 사용할 때 DSN에 오류가 발생하지 않는 이유는 무엇입니까? Go Language, SQL.open ...
