当前回答
简简单简的答案是:git pull
简单git fetch
和继 继 继 继 继 继git merge
.
必须指出,git pull
会不管你喜不喜欢自动合并。这当然可能导致合并冲突。让我们假设你的远程是origin
并且你的分支是master
。如果您git diff origin/master
在拉车之前,你应该对潜在的合并冲突有某种了解,并且可以据此为你的当地部门做好准备。
除了拉和推,一些工作流程涉及git rebase
,例如这一条,我从相关条款中转述如下:
git pull origin master
git checkout foo-branch
git rebase master
git push origin foo-branch
如果你发现自己处于这种情况, 你可能会被诱惑git pull --rebase
除非您真的知道自己在做什么 否则我建议不要这么做man
页面git-pull
版本, 版本2.3.5
:
这是一个潜在危险的操作模式。 它重写历史, 当您已经发布历史时, 历史并不是好兆头。 除非您仔细阅读了 git- rebase(1) , 否则不要使用此选项 。
其他回答
git 拉
它使用单一命令执行两个函数。
它会获取对远程分支的所有修改, 然后将这些修改合并到您的本地分支中。 您也可以通过 -- rebase 来修改拉动行为。 合并和重基准的区别可以读取在这里
git 获取 git 获取
Git 抓取仅能完成 Git pull 的一半工作。 它只是将远程更改带入您的本地回购, 但没有将其应用到分支中 。 您必须明确应用这些更改 。 这可以做如下操作 :
git fetch
git rebase origin/master
我花了一点点时间来理解有什么区别, 但这只是一个简单的解释。master
在您的本地主机是分支 。
当您克隆一个仓库时, 将整个仓库获取到本地主机主机。 这意味着当您克隆一个仓库时, 您将会有一个源/ 主指示器HEAD
指向同一方向HEAD
.
当您开始工作并投入工作时,您将主指针推进到HEAD
+ 你的承诺。但来源/总指针仍然指向你克隆时是什么。
因此,区别在于:
- 如果你做了
git fetch
它只会获取远程仓库中的所有更改( A) 。吉特胡布)并移动源/主指针到HEAD
同时,你的当地分行长会继续指出它的位置。 - 如果你做了
git pull
,它基本上可以(如先前解释的)提取(如前所解释的)并合并对主分支的任何新修改,然后将指针移到HEAD
.
实际上 Git 保有一份您自己的代码副本和远程仓库 。
命令git fetch
通过从远程仓库获取数据来更新您的本地副本。 我们需要这个数据的原因是, 其他人可能对代码做了一些修改, 您想要不断更新自己 。
命令git pull
将远程仓库的更改引入到您保存自己的代码的位置。通常,git pull
这样做的方式是先做一个“ 直接获取” , 将远程仓库的本地副本更新, 然后将修改合并到您自己的代码存储处, 并有可能将您的工作副本合并到您自己的代码存储处 。
好,这里有一些关于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 fetch
和继 继 继 继 继 继git merge
.
必须指出,git pull
会不管你喜不喜欢自动合并。这当然可能导致合并冲突。让我们假设你的远程是origin
并且你的分支是master
。如果您git diff origin/master
在拉车之前,你应该对潜在的合并冲突有某种了解,并且可以据此为你的当地部门做好准备。
除了拉和推,一些工作流程涉及git rebase
,例如这一条,我从相关条款中转述如下:
git pull origin master
git checkout foo-branch
git rebase master
git push origin foo-branch
如果你发现自己处于这种情况, 你可能会被诱惑git pull --rebase
除非您真的知道自己在做什么 否则我建议不要这么做man
页面git-pull
版本, 版本2.3.5
:
这是一个潜在危险的操作模式。 它重写历史, 当您已经发布历史时, 历史并不是好兆头。 除非您仔细阅读了 git- rebase(1) , 否则不要使用此选项 。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别