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


当前回答

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

git refick 不改变本地分支 。

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

其他回答

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

git refick 不改变本地分支 。

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

简单解释:

git fetch

获取元数据。 如果您想要检查最近创建的分支, 您可能需要在退出前进行获取 。

git pull

从远程获取元元数据,并将文件从远程移动并合并到分支

和差异之间的差别GIT 抓取GIT 调可用下列假设情况解释:(记住图片比文字更响亮!

让我们举一个例子来说明您正在与团队成员一起开展一个项目。 因此,该项目将有一个主要分支, 所有贡献者都必须将该项目推到他们自己的本地仓库, 然后在这个本地分支上修改/ 添加模块, 然后推回主分支 。

那么,初次初次国家当您在本地存储库中将主项目 提前启动时, 两支分支中的两支分支将变成这样( ) 。 ( ) @ info: whatsthisA, BC是项目已完成的模块)

enter image description here

现在,你已经开始研究新模块(假设)D),当你们完成D您想要将模块推到主分支中, 但是同时发生的情况是, 您的队友之一开发了新模块E, F修改和修改C.
所以现在发生的事情是 您的本地存储库 缺乏项目最初进展的背后 从而推动您对主要分支的更改 可能导致冲突 并可能导致您的模块D发生故障。

enter image description here

为了避免此类问题,并与项目的最初进展平行工作,有两种方式:

1. Git Fetch-(吉特接驳-)这将下载所有对本地分支中不存在的源/主分支工程所做的更改。 并将等待 Git 合并命令应用您仓库或分支的更改 。

enter image description here

现在您可以仔细监视文件, 然后将其合并到仓库。 您也可以修改D因修改而需要时C.

enter image description here

2. Git Pull-(吉特拉拉) - (吉特拉拉)这将更新您的本地分支, 使用源/ 主分支, 即它实际上所做的是 Git Fetch 和 Git 的组合 。但这可能引发冲突, 因此建议使用Git Pull,

enter image description here

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

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

  • git pull获取承诺后尝试自动合并 。上下文敏感,因此所有被拉动的承诺都将合并为您目前活跃的分支。git pull自动合并承诺未经审查,而不先审查。。如果你不仔细管理自己的分支,你可能会遇到频繁的冲突。

  • git fetch收集当前分支中不存在的目标分支的任何承诺,并将其存储在本地仓库中然而,它不会与您当前分支合并。如果您需要不断更新您的仓库,但正在研究一些更新文件时可能中断的文件。要将承诺整合到当前分支中,您必须使用git merge之后。