在我的
.gitconfig
中,我将 rebase
设置为默认拉动选项。我想了解两者之间有什么区别
git merge origin/develop
与
git pull origin develop
我目前所理解的是
git pull origin develop
将分支develop
从origin
(远程)拉入当前分支。但git merge origin/develop
也是如此(或者,确实如此)?
谢谢,
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
为了了解更多信息,请查看此文档拉动和合并
这里的根本区别是 rebase 的工作原理和 merge 的工作原理之间的区别。
Rebase 会倒退到分支之间的共享点,并且会在头顶上一一重放提交。 (不引入和新的合并提交)
合并将获取分支的总和并将其合并到顶部,生成 1 个新的合并提交,其中包含所有好东西。
Rebase“更好”,因为它以更干净的方式保留历史记录。
您也可以尝试一下
git merge BRANCH --ff-only
这与 rebase 类似,因为它只会重播顶部的提交,保留历史记录。
他们是有区别的。
请注意,在整个 git 中,它们只有 2 个与远程“对话”的命令(这意味着 github.com 公共仓库)。
此演讲有助于同步,并检查本地目录和远程目录中的差异
命令是-
->git pull
->git 推送
_>git pull 与远程对话。它检查差异。
然而,合并,不与远程通信。
pull 是一个命令,它在 git bash 中执行代码,并与远程通信。
merge 是一个命令,它在 git bash 中执行代码,与远程“不对话”。它仅在本地执行代码。
合并 -> 在本地将当前的更改/分歧与“上次下载/拉取的远程设置”合并
拉动 -> 刷新“远程设置”。