当前回答
我花了一点点时间来理解有什么区别, 但这只是一个简单的解释。master
在您的本地主机是分支 。
当您克隆一个仓库时, 将整个仓库获取到本地主机主机。 这意味着当您克隆一个仓库时, 您将会有一个源/ 主指示器HEAD
指向同一方向HEAD
.
当您开始工作并投入工作时,您将主指针推进到HEAD
+ 你的承诺。但来源/总指针仍然指向你克隆时是什么。
因此,区别在于:
- 如果你做了
git fetch
它只会获取远程仓库中的所有更改( A) 。吉特胡布)并移动源/主指针到HEAD
同时,你的当地分行长会继续指出它的位置。 - 如果你做了
git pull
,它基本上可以(如先前解释的)提取(如前所解释的)并合并对主分支的任何新修改,然后将指针移到HEAD
.
其他回答
其中一个使用实例git fetch
是,以下将告诉您自您上次拉动以来远程分支的任何变化... 这样您就可以在实际拉动之前检查, 这样就可以改变您当前分支和工作副本中的文件 。
git fetch
git diff ...origin
见见git diff
双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双..
三点和三点...
语法。
您可以从远程仓库获取, 查看差异, 然后拉动或合并 。
这是被称作远程仓库的示例origin
和支派,和支派,master
跟踪远程分支origin/master
:
git checkout master
git fetch
git diff origin/master
git rebase origin master
简简单简的答案是: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 pull = git fetch + git merge
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的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之间的区别