5.6 KiB
title, localeTitle
| title | localeTitle |
|---|---|
| Git Pull | Git Pull |
Git Pull
git pull是一个Git命令,用于从远程更新存储库的本地版本。
它是Git提示网络交互的四个命令之一。默认情况下, git pull做两件事。
- 更新当前本地工作分支(当前已检出分支)
- 更新所有其他分支的远程跟踪分支。
git pull fetches( git fetch )新提交并将它们合并( git merge )到你的本地分支中。
该命令的语法如下:
# General format
git pull OPTIONS REPOSITORY REFSPEC
# Pull from specific branch
git pull REMOTE-NAME BRANCH-NAME
其中:
- 选项是命令选项,例如
--quiet或--verbose。您可以在Git文档中阅读有关不同选项的更多信息 - REPOSITORY是您的回购的URL。示例:https://github.com/freeCodeCamp/freeCodeCamp.git
- REFSPEC指定要获取的引用和要更新的本地引用
- REMOTE-NAME是远程存储库的名称。例如: origin 。
- BRANCH-NAME是您的分支机构的名称。例如: 开发 。
注意
如果您有未提交的更改, git pull命令的合并部分将失败,您的本地分支将不受影响。
因此, 在_从远程存储库中_提取_新提交_之前 ,应_始终在分支中提交更改_ 。
目录
用git pull
使用git pull从相应的远程存储库更新本地存储库。例如:在master本地工作时,执行git pull来更新master的本地副本并更新其他远程跟踪分支。 (有关远程跟踪分支的更多信息,请参阅下一节。)
但是,有一些事情要记住这个例子是真的:
- 本地存储库具有链接的远程存储库
- 通过执行
git remote -v来检查这一点 - 如果有多个遥控器,
git pull可能不够信息。您可能需要输入git pull origin或git pull upstream。 - 您当前签出的分支具有相应的远程跟踪分支
- 通过执行
git status来检查这一点。如果没有远程跟踪分支,Git不知道_从_哪里提取信息。
分布式版本控制
Git是一个分布式版本控制系统 (DVCS)。使用DVCS,开发人员可以在不同的环境中同时处理同一文件。 _将_代码_推_送到共享远程存储库后,其他开发人员可以_提取已_更改的代码。
Git中的网络交互
只有四个命令可以在Git中提示网络交互。在有信息请求之前,本地存储库不知道对远程存储库所做的更改。并且,在推送提交之前,远程存储库不会意识到本地更改。
四个网络命令是:
git clonegit fetchgit pullgit push
DVCS中的分支机构
使用Git时,可能会感觉到有相同代码的大量副本在整个地方浮动。每个分支上有相同文件的不同版本。并且,每个开发人员的计算机和远程计算机上的相同分支的不同副本。为了跟踪这一点,Git使用了一种称为远程跟踪分支的东西。
如果在Git存储库中执行git branch --all ,远程跟踪分支将显示为红色。这些是远程显示的代码的只读副本。 (最后一次网络交互是什么时候会在本地带来信息?请记住上次更新此信息的时间。远程跟踪分支中的信息反映了该交互的信息。)
使用远程跟踪分支 ,您可以在几个分支上使用Git而无需网络交互。每次执行git pull或git 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。