当前回答
Git使用两个命令从远程到本地获取最新版本的分支 :
git 获取: Git 将会从远程获取最新版本到本地版本, 但不会自动合并 。
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令意味着从远程到源主分支下载主分支的最新版本。 然后比较本地主分支和源主分支。 最后, 合并 。
Git将从远程获取最新版本, 并合并到本地 。
git pull origin master
以上命令相当于
git fetch
和git merge
在实践中,git fetch
也许更安全,因为在合并之前,我们可以看到变化,决定是否合并。
其他回答
git 拉
它使用单一命令执行两个函数。
它会获取对远程分支的所有修改, 然后将这些修改合并到您的本地分支中。 您也可以通过 -- rebase 来修改拉动行为。 合并和重基准的区别可以读取在这里
git 获取 git 获取
Git 抓取仅能完成 Git pull 的一半工作。 它只是将远程更改带入您的本地回购, 但没有将其应用到分支中 。 您必须明确应用这些更改 。 这可以做如下操作 :
git fetch
git rebase origin/master
更简短
git fetch
获取更新但不将其合并 。
git pull
是否为 a 的git fetch
兜帽下,然后一个merge
.
简简
git fetch
类似pull
但它不合并。 也就是说, 它会获取远程更新( NAME OF TRANSLATORS) 。refs
和objects
)但您的居住地保持不变(即:origin/master
得到更新,但master
保留原样) 。 。
git pull
从一个远程的并瞬间合并中拉下来。
更多
git clone
克隆回购 。
git rebase
将不属于上游分支的当前分支保存到临时区域。 您的分支现在和您开始更改前一样。 所以,git pull -rebase
将拉下远程修改, 倒转您的本地分支, 重放您的变化 在您当前分支的顶部 一个一个一个地重放 直到您更新。
还有git branch -a
将显示你们所有分支—— 本地和远程分支—— 究竟发生了什么。
这个博客文章很有用:
Git 拉拉、 Git 抓取和 Git 克隆( 和 Git 重新基底) - Mike Pearce 的区别
和涵盖范围git pull
, git fetch
, git clone
和git rebase
.
最新更新
我想我应该更新这个 来显示你是如何实际使用这个的。
从远程更新您的本地副本( 但不要合并) :
git fetch
下载更新后,
git diff master origin/master
如果你对最新消息满意的话, 合并一下:
git pull
注:
第2步:更多关于本地和远程之间差异的信息,见:如何比较本地 Git 分支与其远程分支的比较
第三步:也许更准确(例如,在快速变化的回购上)git rebase origin
此处。 见@ Justin Ohms 评论在另一个答案中。
另见:http://longair.net/blog/2009/04/16/git-fetch-and-merge/
注:我还提到merge
a 期间pull
然而,您仍然可以配置pull
使用rebase
取而代之。
git pull = git fetch + git merge
git pull = = (获取 Git + git 合并)
git refick 不改变本地分支 。
如果您已经拥有一个本地仓库, 并且为所要的工程设置了远程设置, 您可以使用 git 抓取, 来抓取所有现有的远程的分支和标记 。... Fetch 不改变本地分支 。 因此您需要将远程分支与本地分支合并, 以纳入新抓取的更改 。发自 Github
所有分支都存放在.git/refs
所有地方分支机构都存放在.git/refs/heads
所有远程分支都存放在.git/refs/remotes
缩略
git fetch
命令下载 承诺, 文件, 和 refs 从远程仓库下载到您的本地 repo 。 抓取是您想要看到其他人正在做的工作时要做的事情 。
所以当你做git fetch
全部文件、 承诺和 refs 都下载在
此目录.git/refs/remotes
您可以切换到这些分支以查看变化 。
另外,如果你愿意,你可以把它们合并起来。
git pull
只需下载这些更改, 并将其合并到当前分支 。
示例示例示例示例
如果您想看远程分支的工作dev/jd/feature/auth
,你只需要做
git fetch origin dev/jd/feature/auth
看到变化或工作进展做,
git checkout dev/jd/feature/auth
但如果您也想要获取它们并将其合并到当前分支,
git pull origin dev/jd/feature/auth
如果有的话git fetch origin branch_name
,它将获取分支,现在您可以切换到您想要的分支,并看到变化。您的本地主子或其他本地分支不会受到影响。但您不会受到影响。git pull origin branch_name
将获取分支, 并合并到当前分支 。
推荐文章
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 为什么要把Gradle Wrapper提交给VCS?
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件