两者之间有什么区别?git pullgit fetch?


当前回答

这张图能帮上忙git pull基本上等于git fetch时当时git merge

This graphic could be of help. git pull is essentially equivalent to git fetch then git merge

其他回答

,这里有一些关于git pullgit fetch这样你就能理解 实际的差别 用几个简单的字来说获取获取最新数据, 但代码不会更改, 也不会干扰您当前的本地分支代码, 但是,拉拉拉获取代码更改并合并您的本地分支, 阅读以获得更多关于每个代码的细节 :

git 获取 git 获取

全部下载refs 参考对象和任何新的分支 到您的本地仓库...

从一个或多个其他仓库获取分支和/或标签(统称“refs”),以及完成历史所需的物件。远程跟踪分支得到更新(关于控制这种行为的方法,见下文说明)。

默认情况下, 任何标记指向所获取历史的标记也会被获取; 效果是获取标记指向您感兴趣的分支。 此默认行为可以通过使用 -- tags 或 -- no-tags 选项或通过配置远程.... tagOpt 来更改。 通过使用重新检查, 明确获取标记, 您可以将标记指向您感兴趣的分支, 也可以获取标记指向您感兴趣的分支 。

git 抓取可同时从一个命名的仓库或 URL 或从多个仓库获取,如果给出了,并且有远程。 在配置文件中输入 。 (见 git- config)1).

当没有指定远程时, 默认会使用来源远程, 除非为当前分支配置了上游分支 。

所抓取的参考文献的名称,连同它们指向的对象名称,都写到.git/FETCH_HEAD。此信息可用于脚本或其他 git 命令, 如 git- pull 。


git 拉

它将应用来自偏远会 议 日 和 排当前分支当前分支当地...

包含从远程仓库到当前分支的更改。 在默认模式中, git 拉动是 Git 获取的速记, 之后是 git 合并 FETCH_HEAD 。

更精确地说, git pull 运行 Git 获取带有给定参数的 git 并调用 git 合并, 将回收的分支头合并到当前分支。 如果使用 -- rebase, 它会运行 git 重基而不是 git 合并 。

应该是传递到 Git-fasser 的远程仓库的名称1。可以指定任意的远程参考文献(例如,标签的名称),甚至可以指定具有相应的远程跟踪分支(例如,参考文献/标题/)的参考文献集。备注/备忘/发源/发源/发源/发件人:),但通常是远程存储库中的分支的名称。

以 git-branch -- track 设定的当前分支的“ 远程” 和“ 合并” 配置的默认值, 并从中读取 。


我还创造了视觉显示您如何在下面git fetchgit pull携手合作...

git pull and git fetch

git pull = = (获取 Git + git 合并)

git refick 不改变本地分支 。

如果您已经拥有一个本地仓库, 并且为所要的工程设置了远程设置, 您可以使用 git 抓取, 来抓取所有现有的远程的分支和标记 。... Fetch 不改变本地分支 。 因此您需要将远程分支与本地分支合并, 以纳入新抓取的更改 。发自 Github

git pull = git fetch + git merge 

git fetch从远程服务器将代码从远程服务器撤回到本地仓库的跟踪分支。如果您的远程服务器被命名origin然后,这些分支将居其中;origin/,例如,origin/master, origin/mybranch-123等等。这些不是你们的现树枝,而是你们的现树枝。当地当地服务器上那些分支的复制件

git pull是否为 a 的git fetch但当时并且,还有将跟踪分支的代码合并到您当前本地版本的该分支中。如果您尚未准备好进行该修改,只需git fetch头一次。

enter image description here

这种互动图形表达方式非常有助于降低基点:http://ndpsoftware.com/git-cheatsheet.html

git fetch仅“ 下载” 从远程到本地仓库的更改 。git pull下载修改并将其合并到当前分支中。“在默认模式中,git pull简称为git fetch和继 继 继 继 继 继git merge FETCH_HEAD."