术语pull用于从GitHub接收数据。它从远程服务器获取并合并更改到您的工作目录中。 git pull命令 用于拉取存储库。
Pull request是一个开发者通知团队成员他们已经完成一个功能的流程。一旦他们的功能分支准备好,开发者通过他们的远程服务器账户提交一个pull request。Pull request通知所有团队成员他们需要审查代码并将其合并到主分支中。
下图展示了pull在不同位置之间的作用,以及它与其他相关命令的相似性或不同之处。
“git pull” 命令
pull 命令用于将远程存储库中的变更(提交)获取到本地存储库中。它会将本地分支更新为远程跟踪分支。远程跟踪分支是已设置用于远程存储库的推送和拉取的分支。一般而言,它是获取和合并命令的集合。首先,它会从远程获取变更,并将其与本地存储库合并。
git pull 命令的语法如下:
语法:
$ git pull <option> [<repository URL><refspec>...]
其中:
<option>
: ** 选项是命令;这些命令作为特定命令的附加选项使用。选项可以是 **-q (安静模式), -v (详细模式), -e (编辑模式)等等。
**<repository URL>
: ** 仓库URL是远程仓库的URL,您在其中存储了您的原始仓库,如GitHub或任何其他git服务。该URL的格式如下:
https://github.com/ImDwivedi1/GitExample2.git
要访问此URL,请转到您在GitHub上的帐户,然后选择要克隆的存储库。之后,从存储库菜单中点击 clone 或 download 选项。一个新的弹出窗口将打开,从可用选项中选择 clone with https option 。请参见下面的屏幕截图:
复制突出显示的URL。此URL用于克隆存储库。
<Refspec>
: ** 引用是指提交,例如head(分支),标签和远程分支。您可以在本地存储库的 **.git/ref 目录中检查head,标签和远程存储库。 Refspec 指定并更新引用。
如何使用pull:
了解它的工作原理和如何使用它是必要的。让我们以一个示例来了解它的工作原理和如何使用它。假设我在项目GitExample2的远程存储库中添加了一个新文件,比如 design2.css 。
要首先创建文件,请转到存储库子功能中的创建文件选项。然后,选择文件名并按您的要求编辑文件。请参考下面的图片。
转到页面底部,选择一个提交消息和文件的描述。选择是要创建一个新分支还是直接提交到主分支。请看下面的图片:
现在,我们已成功提交了更改。
要将这些更改拉取到您的本地存储库中,在克隆存储库上执行git pull操作。对于pull命令,有许多特定选项可供使用。让我们来看一些用法。
默认的git pull
我们可以通过使用git pull命令来拉取远程存储库。这是默认选项。git pull的语法如下:
语法:
$ git pull
输出结果:
给定的输出中,通过git pull命令获取库的新更新对象。这是git pull命令的默认版本。它将更新新创建的文件 design2.css 文件以及本地仓库中的相关对象。请参见下面的图片。
如上所示,design2.css文件已添加到本地存储库。git pull命令相当于 git fetch origin head 和 git merge head 。head是指当前分支的引用。
Git拉取远程分支
Git允许拉取特定分支。拉取远程分支的过程与上述提到的git pull命令相似。唯一的区别是我们必须复制我们想要拉取的特定分支的URL。为此,我们将选择一个特定的分支。请参见下面的图片:
语法:
$ git pull <remote branch URL>
输出:
在上面的输出中,远程分支 已编辑 已复制。
Git 强制拉取
Git 强制拉取允许以任何代价拉取你的仓库。假设以下场景:
如果你在本地更新了任何文件,而其他团队成员在远程上更新了它。那么,当你获取仓库时,可能会产生冲突。
我们可以说 强制拉取 用于覆盖文件。如果我们想放弃本地仓库中的所有更改,那么我们可以通过有影响力的拉取来覆盖它。考虑以下过程来强制拉取仓库:
步骤1: 使用git fetch命令从远程下载最新的更新,但不合并或重洗。
$ git fetch -all
步骤2: 使用git reset命令将主分支重置为从远程获取的更新。使用hard选项可以强制地将本地仓库中的所有文件与远程仓库进行更改。
$ git reset -hard <remote>/<branch_name>
$ git reset-hard master
考虑以下输出:
在上面的输出中,我已经更新了我的design2.css文件,并强制将其拉入存储库。
Git Pull Origin Master
还有另一种方式可以拉取存储库。我们可以使用 git pull 命令来拉取存储库。语法如下:
$ git pull <options><remote>/<branchname>
$ git pull origin master
在上述语法中,术语 origin 代表远程存储库所在的存储库位置。 Master 被认为是项目的主分支。 考虑下面的输出:
它将用远程存储库覆盖本地存储库中的现有数据。
您可以检查您存储库的远程位置。要检查存储库的远程位置,请使用以下命令:
$ git remote -v
给定的命令将导致一个如下的远程位置:
origin https://github.com/ImDwivedi1/GitExample2 (fetch)
origin https://github.com/ImDwivedi1/GitExample2 (push)
输出显示获取和推送两个位置。请参考下面的图片:
Git拉取请求
拉取请求允许您宣布您在分支上所做的更改。一旦打开拉取请求,您可以与其他人进行交流并审核所做的更改。它允许在合并到主分支之前审核提交。
当您在GitHub项目中提交更改并希望其他成员对其进行审核时,就会创建拉取请求。您可以将更改提交到新分支或现有分支。
一旦您创建了拉取请求,您可以推送提交从您的分支添加到您的现有拉取请求中。
如何创建拉取请求
要创建拉取请求,您需要创建一个文件并将其作为新分支提交。如我们之前在这个主题中提到的,如何提交文件以使用git pull。选择页面底部的选项“ 创建一个新的分支用于此提交并开始拉取请求 ”。给出新分支的名称。在页面底部选择“ 提出新文件的建议 ”选项。请参考下面的图片。
在上面的图像中,我已经选择了所需的选项,并将文件命名为 PullRequestDemo 。选择提出新文件的选项,它会打开一个新页面。选择 创建拉取请求 的选项。请参考下面的图像:
现在,拉请求是由您创建的。人们可以看到此请求。他们可以通过选择合并的拉请求将此请求与其他分支合并。