当前回答
好,这里有一些关于git pull
和git 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 fetch
和git pull
携手合作...
其他回答
git pull = = (获取 Git + git 合并)
git refick 不改变本地分支 。
如果您已经拥有一个本地仓库, 并且为所要的工程设置了远程设置, 您可以使用 git 抓取, 来抓取所有现有的远程的分支和标记 。... Fetch 不改变本地分支 。 因此您需要将远程分支与本地分支合并, 以纳入新抓取的更改 。发自 Github
最简单的说,git pull
是否为 a 的git fetch
续 续 agit merge
.
git fetch
更新您的远程跟踪分支refs/remotes/<remote>/
。此操作可以随时安全运行,因为它不会改变您在refs/heads
.
git pull
本地分支提供其远程版本的最新信息,同时更新其他远程跟踪分支。
调自 Git 文档git pull
:
git pull
运行中git fetch
使用给定参数,然后取决于配置选项或命令行的旗帜,将调用其中之一git rebase
或git merge
以便各处之间互相调和。
有必要记住,在任何特定机器的Git存储库工作时,存储库载有来自所有远程的所有分支的复制件,以及每个地方分支的复制件,你已经做了一些工作。
你可以看到这个使用git branch -a
显示您所在的分支机构,包括master
和所有遥控器的分支。
master
feature/my-feature-branch
remotes/origin/master
remotes/origin/my-feature-branch
remotes/another-remote-machine/master
remotes/another-remote-machine/my-feature-branch
上面我已指出 遥控遥控器的存在origin
以另一个名称返回和另一个远程another-remote-machine
.
注意 您不必在所有仓库中拥有每个分支的复制件 。 (remotes 和 local.) 它取决于您通过运行同步 。git pull
, git push
, git fetch
,来自不同的机器 / 仓库 所涉及的。
我们简单地说:
git pull == git fetch + git merge
如果你逃跑git pull
中,您不需要将数据合并到本地数据。如果运行git fetch
这意味着你必须跑git merge
获取本地机器的最新代码。 否则, 本地机器代码不会在不合并的情况下被更改 。
所以在 Git Gui 中, 当您获取时, 您必须合并数据 。 获取本身不会在本地修改代码 。 您可以检查当您通过一次获取并查看来更新代码时, 是否更新了代码; 代码不会改变 。 然后您将合并... 您将会看到修改后的代码 。
git fetch
将检索远程分支,以便您能够git diff
或git merge
它们与当前分支一起存在。git pull
将运行当前分支所跟踪的远程条格获取,然后合并结果。您可以使用git fetch
查看是否对远程分支有任何更新,而不必将其与您的本地分支合并。
git pull = git fetch + git merge
推荐文章
- Github:导入上游分支到fork
- Git单次修订的日志
- Git在不改变提交时间戳的情况下进行改基
- VS 2017 Git本地提交数据库。每次提交时锁定错误
- 如何在过去的一些任意提交之间注入一个提交?
- 从GitHub克隆项目后拉git子模块
- GitHub上的分叉和克隆有什么区别?
- 递归地按模式添加文件
- 我如何使用notepad++(或其他)与msysgit?
- 如何将现有的解决方案从Visual Studio 2013添加到GitHub
- Git存储库中的悬垂提交和blob是什么?它们来自哪里?
- 我如何简单地从我最新的git提交创建一个补丁?
- Git显示“警告:永久添加到已知主机列表”
- 我如何检索一个回购的远程git地址?
- 如何列出提交,因为某些提交?