Git Merge - 拉取和合并之间的区别

问题描述 投票:0回答:3

在我的

.gitconfig
中,我将
rebase
设置为默认拉动选项。我想了解两者之间有什么区别

git merge origin/develop

git pull origin develop

我目前所理解的是

git pull origin develop
将分支
develop
origin
(远程)拉入当前分支。但
git merge origin/develop
也是如此(或者,确实如此)?

谢谢,

git git-pull
3个回答
7
投票

git pull 使用给定的参数运行 git fetch 并调用 git merge 将检索到的分支头合并到当前分支中。

命令

git pull <remote> <branch>

真的和

一样
git fetch <remote>
git merge <remote>/<branch>

因此,两者之间没有实际区别

git pull origin master

git fetch origin
git merge origin/master

为了了解更多信息,请查看此文档拉动和合并


2
投票

这里的根本区别是 rebase 的工作原理和 merge 的工作原理之间的区别。

Rebase 会倒退到分支之间的共享点,并且会在头顶上一一重放提交。 (不引入和新的合并提交)

合并将获取分支的总和并将其合并到顶部,生成 1 个新的合并提交,其中包含所有好东西。

Rebase“更好”,因为它以更干净的方式保留历史记录。

您也可以尝试一下

git merge BRANCH --ff-only

这与 rebase 类似,因为它只会重播顶部的提交,保留历史记录。


0
投票

他们是有区别的。

请注意,在整个 git 中,它们只有 2 个与远程“对话”的命令(这意味着 github.com 公共仓库)。

此演讲有助于同步,并检查本地目录和远程目录中的差异

命令是-

->git pull

->git 推送

_>git pull 与远程对话。它检查差异。

然而,合并,不与远程通信。

pull 是一个命令,它在 git bash 中执行代码,并与远程通信。

merge 是一个命令,它在 git bash 中执行代码,与远程“不对话”。它仅在本地执行代码。

合并 -> 在本地将当前的更改/分歧与“上次下载/拉取的远程设置”合并

拉动 -> 刷新“远程设置”。

© www.soinside.com 2019 - 2024. All rights reserved.