Git Pull


git pull是一个Git命令,用于从远程更新存储库的本地版本。

它是Git提示网络交互的四个命令之一。默认情况下, git pull做两件事。

  1. 更新当前本地工作分支(当前已检出分支)
  2. 更新所有其他分支的远程跟踪分支。

该命令的语法如下:

# General format
git pull OPTIONS REPOSITORY REFSPEC

# Pull from specific branch
git pull REMOTE-NAME BRANCH-NAME

其中:

  • 选项 是命令选项,例如--quiet--verbose 。您可以在Git文档中阅读有关不同选项的更多信息
  • REPOSITORY 是您的回购的URL。
  • REFSPEC 指定要获取的引用和要更新的本地引用
  • REMOTE-NAME 是远程存储库的名称。例如: origin
  • BRANCH-NAME 是您的分支机构的名称。例如: 开发

注意

如果您有未提交的更改, git pull命令的合并部分将失败,您的本地分支将不受影响。

因此, _在_从远程存储库中_提取_新提交之前 ,应始终在分支中提交更改

目录

用git pull

使用git pull从相应的远程存储库更新本地存储库。例如:在master本地工作时,执行git pull来更新master的本地副本并更新其他远程跟踪分支。 (有关远程跟踪分支的更多信息,请参阅下一节。)

但是,有一些事情要记住这个例子是真的:

  • 本地存储库具有链接的远程存储库
  • 通过执行git remote -v来检查这一点
  • 如果有多个遥控器, git pull可能不够信息。您可能需要输入git pull origingit pull upstream
  • 您当前签出的分支具有相应的远程跟踪分支
  • 通过执行git status来检查这一点。如果没有远程跟踪分支,Git不知道_从_哪里提取信息。

分布式版本控制

Git是一个 分布式版本控制系统 (DVCS)。使用DVCS,开发人员可以在不同的环境中同时处理同一文件。 将代码推送到共享远程存储库后,其他开发人员可以_提取已_更改的代码。

Git中的网络交互

只有四个命令可以在Git中提示网络交互。在有信息请求之前,本地存储库不知道对远程存储库所做的更改。并且,在推送提交之前,远程存储库不会意识到本地更改。

四个网络命令是:

  • git clone
  • git fetch
  • git pull
  • git push

DVCS中的分支机构

使用Git时,可能会感觉到有相同代码的大量副本在整个地方浮动。每个分支上有相同文件的不同版本。并且,每个开发人员的计算机和远程计算机上的相同分支的不同副本。为了跟踪这一点,Git使用了一种称为 远程跟踪分支的 东西。

如果在Git存储库中执行git branch --all ,远程跟踪分支将显示为红色。这些是远程显示的代码的只读副本。 (最后一次网络交互是什么时候会在本地带来信息?请记住上次更新此信息的时间。远程跟踪分支中的信息反映了该交互的信息。)

使用远程跟踪分支 ,您可以在几个分支上使用Git而无需网络交互。每次执行git pullgit fetch命令时,都会更新远程跟踪分支

git fetch加上git merge

git pull是一个组合命令,等于git fetch + git merge

git fetch

git fetch本身更新了本地存储库中的所有远程跟踪分支。实际上没有任何变化反映在任何本地工作分支上。

git merge

没有任何参数, git merge会将相应的远程跟踪分支合并到本地工作分支。

git pull

git fetch更新远程跟踪分支。 git merge使用相应的远程跟踪分支更新当前分支。使用git pull ,您可以获得这些更新的两个部分。但是,这意味着如果您签出了feature分支并执行git pull ,那么当您签出要master ,将不会包含任何新的更新。每当你签到另一个可能有新变化的分支时,执行git pull总是一个好主意。

git拉入IDE

其他IDES中的通用语言可能不包括单词pull 。如果您注意单词git pull但看不到它们,请查找单词sync

将远程PR(Pull Request)放入本地仓库

出于审查等目的,应将遥控器中的PR提取到本地存储库。您可以使用git fetch命令执行此操作。

git fetch origin pull/ID/head:BRANCHNAME

ID是拉取请求ID,BRANCHNAME是您要创建的分支的名称。创建分支后,您可以使用git checkout切换到该brach。

更多Git教程

学习更多Git教程