📅  最后修改于: 2020-12-14 01:21:12             🧑  作者: Mango
Git“获取”从另一个存储库下载提交,对象和引用。它从一个或多个存储库中获取分支和标签。它包含存储库以及完成其历史记录以保持更新的远程跟踪分支所必需的对象。
“ git fetch ”命令用于从远程跟踪分支中提取更新。此外,我们还可以获取已推送到本地计算机的远程分支的更新。众所周知,分支是存储库主代码的变体,因此远程跟踪分支是已设置为从远程存储库中拉出和推送的分支。
我们可以将fetch命令与许多参数一起用于特定的数据提取。请参阅以下方案以了解fetch命令的用法。
我们可以像使用pull命令一样,从存储库URL中使用fetch命令来获取完整的存储库。请参见以下输出:
句法:
$ git fetch< repository Url>
输出:
在上面的输出中,已从远程URL获取了完整的存储库。
我们可以从存储库中获取特定分支。它只会从特定分支访问元素。请参见以下输出:
句法:
$ git fetch
输出:
在给定的输出中,已从远程URL提取了特定的分支测试。
git fetch命令允许同时从远程存储库获取所有分支。请参见以下示例:
句法:
$ git fetch -all
输出:
在以上输出中,所有分支均已从存储库Git-Example中获取。
假设您的团队成员已向远程存储库添加了一些新功能。因此,要将这些更新添加到本地存储库,请使用git fetch命令。它的用法如下。
句法:
$ git fetch origin
输出:
在上面的输出中,远程存储库的新功能已更新到我的本地系统。在此输出中,将分支test2及其对象添加到本地存储库。
git fetch可以一次从单个命名存储库或URL或从多个存储库中获取。它可以被认为是git pull命令的安全版本。
git fetch下载远程内容,但不更新本地存储库的工作状态。如果未指定任何远程服务器,则默认情况下,它将获取原始远程服务器。
要了解提取和提取之间的区别,让我们知道这两个命令之间的相似之处。这两个命令都用于从远程存储库下载数据。但是这两个命令的工作方式不同。就像执行git pull一样,它会从远程或中央存储库中获取所有更改,并使其可用于本地存储库中的相应分支。执行git fetch时,它会从远程存储库中获取所有更改,并将其存储在本地存储库中的单独分支中。您可以通过合并在相应分支中反映这些更改。
所以基本上
git pull = git fetch + git merge
这两个命令之间的一些主要区别如下:
git fetch | git pull |
---|---|
Fetch downloads only new data from a remote repository. | Pull is used to update your current HEAD branch with the latest changes from the remote server. |
Fetch is used to get a new view of all the things that happened in a remote repository. | Pull downloads new data and directly integrates it into your current working copy files. |
Fetch never manipulates or spoils data. | Pull downloads the data and integrates it with the current working file. |
It protects your code from merge conflict. | In git pull, there are more chances to create the merge conflict. |
It is better to use git fetch command with git merge command on a pulled repository. | It is not an excellent choice to use git pull if you already pulled any repository. |