程序员社区

Git系列教程 --- 37、Git 的fetch 命令详解

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

file

“git fetch”命令

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

如何获取 Git 存储库

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

场景 1:获取远程存储库:

我们可以在 fetch 命令的帮助下从存储库 URL 中获取完整的存储库,就像 pull 命令一样。请参阅以下输出:

句法:

$ git fetch< repository Url>  

输出:

file

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

场景 2:获取特定分支:

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

句法:

$ git fetch <branch URL><branch name>  

输出:

file

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

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

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

句法:

$ git fetch -all  

输出:

file

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

场景 4:同步本地存储库:

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

句法:

$ git fetch origin  

输出:

file

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

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

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

git fetch 和 git pull 的区别

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

所以基本上,

git pull = git fetch + git merge  

Git Fetch 与 Pull

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

git pull = git fetch + git merge git pull
Fetch 仅从远程存储库下载新数据。 Pull 用于使用远程服务器的最新更改更新当前的 HEAD 分支。
Fetch 用于获取远程存储库中发生的所有事情的新视图。 拉下载新数据并将其直接集成到您当前的工作副本文件中。
Fetch 从不操纵或破坏数据。 拉下载数据并将其与当前工作文件集成。
它保护您的代码免受合并冲突。 在 git pull 中,有更多的机会产生合并冲突
最好在拉取的存储库上使用 git fetch 命令和 git merge 命令。 如果您已经拉取了任何存储库,那么使用 git pull 并不是一个很好的选择。
赞(0) 打赏
未经允许不得转载:IDEA激活码 » Git系列教程 --- 37、Git 的fetch 命令详解

一个分享Java & Python知识的社区