Git Fetch命令
Git “fetch” 从另一个仓库下载提交记录、对象和引用。它从一个或多个仓库中获取分支和标签。它保存仓库以及完成其历史所需的对象,以保持更新的远程跟踪分支。
“git fetch”命令
” git fetch ” 命令 用于从远程跟踪分支中拉取更新。此外,我们还可以将推送到远程分支的更新获取到我们的本地机器上。正如我们所知,分支是我们存储库主要代码的变体,因此远程跟踪分支是已设置为从远程存储库拉取和推送的分支。
如何获取Git存储库
我们可以使用fetch命令,并使用许多参数进行特定的数据获取。请参阅下面的场景以了解fetch命令的用法。
场景1:获取远程存储库
我们可以使用fetch命令从存储库URL获取完整的存储库,就像pull命令一样。请参阅下面的输出:
语法:
$ git fetch< repository Url>
输出结果:
在上面的输出中,完整的存储库从远程URL获取。
场景2:获取特定分支
我们可以从存储库获取特定分支。它只会访问特定分支的元素。请参阅下面的输出:
语法:
$ git fetch <branch URL><branch name>
输出:
场景3:同时获取所有分支
git fetch命令允许从远程仓库同时获取所有分支。参考以下示例:
语法:
$ git fetch -all
输出:
在上述输出中,所有的分支都已从存储库Git-Example中获取。
场景4:同步本地存储库
假设您的团队成员在远程存储库中添加了一些新功能。因此,要将这些更新添加到本地存储库中,请使用git fetch命令。具体用法如下。
语法:
$ git fetch origin
输出:
git fetch 可以从单个命名的仓库或URL或从多个仓库中获取内容。它可以被认为是 git pull 命令的安全版本。
git fetch 下载了远程内容,但不会更新本地仓库的工作状态。当没有指定远程服务器时,默认会获取 origin 远程仓库。
git fetch 和 git pull 的区别
为了理解 fetch 和 pull 的区别,让我们了解一下这两个命令的相似之处。这两个命令都用于从远程仓库下载数据。但是这两个命令的工作方式不同。当你执行 git pull 命令时,它会从远程或中央仓库获取所有的改动,并使其在本地仓库中的相应分支可用。当你执行 git fetch 命令时,它会从远程仓库获取所有的改动,并将其存储在本地仓库的一个独立分支中。你可以通过合并在相应的分支中反映这些改动。
所以基本上,
git pull = git fetch + git merge
Git Fetch与Pull的区别
以下是这两个命令之间的关键区别:
git fetch | git pull |
---|---|
Fetch从远程仓库中仅下载新数据。 | Pull用于将当前的HEAD分支更新为远程服务器的最新更改。 |
Fetch用于获取远程存储库中发生的所有事情的新视图。 | Pull下载新数据并直接集成到当前的工作副本文件中。 |
Fetch永远不会操纵或破坏数据。 | Pull下载数据并将其与当前的工作文件集成。 |
它保护代码免受合并冲突的影响。 | 在git pull中,更容易创建 合并冲突 。 |
最好使用git fetch命令和git merge命令在已拉取的存储库上操作。 | 如果已经拉取了任何存储库,使用git pull不是一个很好的选择。 |