Git – Fetch命令

Git fetch从另一个仓库下载提交、对象和引用。它从一个或多个仓库获取分支和标签。它持有仓库以及完成其历史所需的对象,以保持更新的远程跟踪分支。

Git Fetch

git fetch 命令

git fetch命令被用来从远程跟踪的分支中提取更新。此外,我们还可以把已经推送到远程分支的更新拿到我们的本地机器上。正如我们所知,一个分支是我们仓库主代码的一个变体,所以远程跟踪分支是被设置为从远程仓库拉取和推送的分支。

如何获取Git仓库

我们可以使用带有许多参数的fetch命令来获取特定的数据。请看下面的场景来理解fetch命令的用途。

场景1:获取远程仓库

我们可以像pull命令那样用fetch命令从版本库的URL中获取完整的版本库。请看下面的输出。

语法:

$ git fetch< repository Url>

输出:

Git Fetch

在上面的输出中,完整的版本库已经从一个远程URL中获取。

场景2:获取一个特定的分支

我们可以从存储库中获取一个特定的分支。它将只访问特定分支的元素。请看下面的输出。

语法:

$ git fetch <branch URL><branch name>

输出:

Git Fetch

在给定的输出中,特定的分支测试已经从一个远程URL中获取。

场景3:同时获取所有分支

git fetch 命令允许从一个远程仓库同时获取所有分支。请看下面的例子。

语法:

$ git fetch -all

输出:

Git Fetch

在上述输出中,所有的分支都是从仓库Git-Example中获取的。

场景4:同步本地仓库

假设,你的团队成员给你的远程仓库增加了一些新功能。所以,要把这些更新添加到你的本地仓库,使用git fetch命令。它的使用方法如下。

语法:

$ git fetch origin

输出:

Git Fetch

在上面的输出中,远程版本库的新功能已经更新到我的本地系统。在这个输出中,分支test2和它的对象被添加到本地版本库。

git fetch可以从一个命名的仓库或URL中获取,也可以同时从几个仓库中获取。它可以被认为是git pull命令的安全版本。

git fetch 会下载远程内容,但不会更新你本地 repo 的工作状态。当没有指定远程服务器时,默认情况下,它将获取原点远程。

git fetch 和git pull 的差异

为了理解fetch和pull的区别,让我们知道这两个命令的相似之处。这两个命令都是用来从远程资源库下载数据的。但这两个命令的工作方式不同。比如,当你做git pull时,它从远程或中央仓库获取所有的变化,并使其在你的本地仓库的相应分支中可用。当你做git fetch时,它从远程仓库获取所有的变化,并将其存储在本地仓库的一个单独分支中。你可以通过合并将这些变化反映在你的相应分支中。

所以基本上。

git pull = git fetch + git merge

Git Fetch vs. Pull

这两个命令的一些主要区别如下。

git fetch git pull
Fetch只从远程存储库下载新数据 Pull是用来用远程服务器的最新修改来更新你当前的HEAD分支
Fetch是用来获取一个远程仓库中发生的所有事情的新视图 Pull下载新的数据并直接整合到你当前的工作副本文件中
Fetch从不操纵或破坏数据 Pull下载数据并将其与当前工作文件整合
它可以保护你的代码不受合并冲突的影响 在git pull中,有更多的机会产生合并冲突
在一个拉来的版本库上,最好使用git fetch命令和git merge命令 如果你已经拉了任何一个仓库,使用git pull并不是一个很好的选择

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程