拉动(pull)一词是用来接收来自GitHub的数据。它从远程服务器上获取并合并变化到你的工作目录。git pull 命令用来拉动一个仓库。
拉取请求是一个开发者通知团队成员他们已经完成了一个特性的过程。一旦他们的特性分支准备好了,开发者就通过他们的远程服务器账户提交一个拉取请求。拉动请求宣布所有的团队成员,他们需要审查代码并将其合并到主分支。
下图展示了拉动在不同地点之间的作用,以及它与其他相关命令的相似或不同之处。
git pull命令
pull 命令用于访问远程版本库到本地版本库的修改(提交)。它用远程跟踪的分支来更新本地分支。远程跟踪分支是被设置为从远程版本库推送和拉取的分支。一般来说,它是fetch和merges命令的集合。首先,它从远程获取变化并与本地仓库合并。
git pull命令的语法如下。
语法:
$ git pull <option> [<repository URL><refspec>...]
其中:
<option>
:选项是命令;这些命令作为一个特定命令的附加选项。选项可以是-q (quiet), -v (verbose), -e(edit)等等。
<repository URL>
:仓库URL是你的远程仓库的URL,你把你的原始仓库存放在那里,如GitHub或任何其他git服务。这个URL看起来像。
https://github.com/ImDwivedi1/GitExample2.git
要访问这个URL,请进入你在GitHub上的账户,选择你想克隆的仓库。之后,点击仓库菜单中的克隆或下载选项。一个新的弹出窗口会打开,从可用的选项中选择用 https 克隆选项。见下面的屏幕截图。
复制高亮显示的URL。这个URL是用来克隆版本库的。
<Refspec>
: ref指的是提交,例如,head(分支)、tags和远程分支。你可以在本地版本库的.git/ref目录下查看head、tags和远程版本库。Refspec 指定并更新 refs。
如何使用拉。
了解它的工作原理和使用方法是至关重要的。让我们举个例子来了解它是如何工作的以及如何使用它。假设我在项目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指的是当前分支的ref。
Git Pull远程分支
Git 允许获取一个特定的分支。如上所述,获取远程分支的过程与git pull命令类似。唯一不同的是,我们必须复制我们想拉取的特定分支的URL。要做到这一点,我们将选择一个特定的分支。请看下面的图片。
在上面的截图中,我选择了名为edited的分支,以复制已编辑的分支的URL。现在,我打算从已编辑的分支中提取数据。下面的命令用来拉动一个远程分支。
语法:
$ git pull <remote branch URL>
输出:
在上面的输出中,编辑的远程分支已被复制。
Git 强制Pull
Git强制拉动允许不惜一切代价拉动你的仓库。假设下面的情况。
如果你在本地更新了任何文件,而其他团队成员在远程更新了它。所以,当你获取版本库的时候,可能会产生冲突。
我们可以说 force pull 是用来覆盖文件的。如果我们想丢弃本地版本库的所有修改,那么我们可以通过强制拉取来覆盖它。考虑下面的过程来强制拉动一个版本库。
第一步:使用git fetch命令从远程下载最新的更新,而不进行合并或重新发布。
$ git fetch -all
第二步:使用 git reset 命令,用从远程获取的更新重置主分支。硬选项是用来用远程版本库强行改变本地版本库中的所有文件。
$ 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 Pull Request
拉动请求允许你宣布你在分支中所作的修改。一旦拉动请求被打开,你就可以讨论和审查其他人的修改。它允许在合并到主分支之前审查提交的内容。
当你在GitHub项目中提交了一个修改,并希望被其他成员审查时,就会创建拉取请求。你可以将修改提交到一个新的分支或现有的分支。
一旦你创建了一个拉动请求,你就可以从你的分支推送提交,将它们添加到你现有的拉动请求中。
如何创建Pull Request
要创建一个拉动请求,你需要创建一个文件并将其作为一个新的分支提交。正如我们在本主题前面提到的,如何提交一个文件来使用git pull。选择页面底部的 “为该提交创建新的分支并开始拉取请求 “选项。给出新分支的名称。选择页面底部的选项,提出一个新文件。请看下面的图片。
在上图中,我已经选择了所需的选项,并将文件命名为PullRequestDemo。选择选项,提出一个新的文件。它将打开一个新的页面。选择创建拉动请求的选项。请看下面的图片。
现在,这个pull request是由你创建的。人们可以看到这个请求。他们可以通过选择一个合并的拉动请求,将这个请求与其他分支合并。