Git"fetch"从另一个存储库下载提交,对象和引用。它从一个或多个存储库中获取分支和标签。它包含存储库以及完成其历史记录以保持更新的远程跟踪分支所必需的对象。
" git fetch " 命令用于从远程跟踪分支中提取更新。此外,我们还可以获取已推送到本地计算机的远程分支的更新。
我们可以将fetch命令与许多参数一起用于特定的数据提取。请参阅以下方案以了解fetch命令的用法。
我们可以像使用pull命令一样,从存储库URL中使用fetch命令来获取完整的存储库。请参见以下输出:
语法:
$ git fetch< repository Url>
输出:
在上面的输出中,已从远程URL获取了完整的存储库。
我们可以从存储库中获取特定分支。请参见以下输出:
语法:
$ git fetch <branch URL><branch name>
输出:
在给定的输出中,已从远程URL提取了特定的分支 test 。
git fetch命令允许从远程存储库同时获取所有分支。请参见以下示例:
语法:
$ git fetch -all
输出:
在以上输出中,所有分支均已从存储库Git-Example中获取。
假设您的团队成员已向远程存储库添加了一些新功能。因此,要将这些更新添加到本地存储库,请使用git fetch命令。它的用法如下。
语法:
$ git fetch origin
输出:
在上面的输出中,远程存储库的新功能已更新到我的本地系统。在此输出中,分支 test2 及其对象已添加到本地存储库。
git fetch可以一次从单个命名存储库或URL或从多个存储库中获取。它可以被认为是git pull命令的安全版本。
git fetch下载远程内容,但不更新本地存储库的工作状态。如果未指定任何远程服务器,则默认情况下,它将获取原始远程服务器。
要了解fetch和pull之间的区别,让我们知道这两个命令之间的相似之处。这两个命令都用于从远程存储库下载数据。但是这两个命令的工作方式不同。就像执行git pull一样,它会从远程或中央存储库中获取所有更改,并使其可用于本地存储库中的相应分支。执行git fetch时,它会从远程存储库中获取所有更改,并将其存储在本地存储库中的单独分支中。
所以基本上
git pull = git fetch + git merge
这两个命令之间的一些主要区别如下:
git fetch | git pull |
---|---|
提取仅从远程存储库下载新数据。 | Pull用于使用远程服务器的最新更改来更新当前的HEAD分支。 |
获取用于获取远程存储库中发生的所有事件的新视图。 | Pull下载新数据并将其直接集成到您当前的工作副本文件中。 |
获取永远不会操纵或破坏数据。 | Pull下载数据并将其与当前工作文件集成。 |
它保护您的代码免于合并冲突。 | 在git pull中,有更多机会创建合并冲突。 |
最好在提取的存储库上使用git fetch命令和git merge命令。 | 如果您已经拉出任何存储库,那么使用git pull并不是一个很好的选择。 |
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)