Git Fetch

2025 年 5 月 18 日 | 3 分钟阅读

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

Git Fetch

"git fetch"命令

git fetch命令用于从远程跟踪分支中提取更新。 此外,我们可以获取已推送到远程分支的更新到我们的本地机器。 众所周知,分支是我们的存储库主代码的变体,因此远程跟踪分支是设置为从远程存储库中提取和推送的分支。

如何获取 Git 存储库

我们可以使用 fetch 命令和许多参数来获取特定数据。 请参阅以下场景以了解 fetch 命令的用法。

场景 1:获取远程存储库

我们可以借助 fetch 命令从存储库 URL(如 pull 命令)获取完整的存储库。 请参阅以下输出

语法

输出

Git Fetch

在上面的输出中,完整的存储库已从远程 URL 获取。

场景 2:获取特定分支

我们可以从存储库中获取特定分支。 它将仅访问特定分支中的元素。 请参阅以下输出

语法

输出

Git Fetch

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

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

git fetch 命令允许同时从远程存储库中提取所有分支。 请参阅以下示例

语法

输出

Git Fetch

在上面的输出中,所有分支都已从存储库 Git-Example 中提取。

场景 4:同步本地存储库

假设您的团队成员已向您的远程存储库添加了一些新功能。 因此,要将这些更新添加到您的本地存储库,请使用 git fetch 命令。 它的用法如下所示。

语法

输出

Git Fetch

在上面的输出中,远程存储库的新功能已更新到我的本地系统。 在此输出中,分支test2及其对象已添加到本地存储库中。

git fetch 可以从单个命名存储库或 URL 或同时从多个存储库中获取。 它可以被认为是 git pull 命令的安全版本。

git fetch 下载远程内容,但不会更新本地存储库的工作状态。 当未指定远程服务器时,默认情况下,它将获取 origin 远程。

git fetch 和 git pull 之间的区别

为了理解 fetch 和 pull 之间的区别,让我们了解这两个命令之间的相似之处。 这两个命令都用于从远程存储库下载数据。 但是这两个命令的工作方式不同。 就像当您执行 git pull 时,它会从远程或中央存储库中获取所有更改,并使其在本地存储库中相应的分支中可用。 当您执行 git fetch 时,它会从远程存储库中获取所有更改并将其存储在本地存储库中的单独分支中。 您可以通过合并将这些更改反映在相应的分支中。

所以基本上,

Git Fetch vs. Pull

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

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

下一个主题Git Pull