git - 如何将远程master merge 到本地分支

标签 git branch pull

我有一个项目的本地分支(“configUpdate”),我从其他人的项目中 fork 出来,我已经对它做了很多更改,并且想将他们所做的更改 merge 到我的本地分支机构。

我试过了

git pull --rebase origin configUpdate

但它没有获取最新的更改 - 我如何 merge 两者? (同样为了加分,我对 pull --rebase 命令做了什么?)

最佳答案

从您的功能分支(例如configUpdate)运行:

git fetch
git rebase origin/master

或更短的形式:

git pull --rebase

为什么会这样:

  • git merge branchname 从分支 branchname 获取新提交,并将它们添加到当前分支。如有必要,它会自动在顶部添加“merge ”提交。

  • git rebase branchname 从分支 branchname 获取新提交,并将它们插入到您的更改“下”。更准确地说,它修改当前分支的历史,使其基于 branchname 的提示,以及您在此基础上所做的任何更改。

  • git pullgit fetch 基本相同; git merge origin/master.

  • git pull --rebasegit fetch 基本相同; git rebase origin/master.

那么为什么要使用 git pull --rebase 而不是 git pull?这是一个简单的例子:

  • 您开始研究一项新功能。

  • 当您准备好推送更改时,其他开发人员已推送了多个提交。

  • 如果您git pull(使用 merge ),除了自动创建的 merge 提交之外,您的更改将被新提交埋没。

  • 如果您改为 git pull --rebase,git 会将您的 master 快速转发到上游,然后在顶部应用您的更改。

关于git - 如何将远程master merge 到本地分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7200614/

相关文章:

git - 如何使用 hg convert 将 git 分支导入到 mercurial 中?

混帐推送 "The remote end hung up unexpectedly "

C# 林奇 : What is the difference between a Pull model and a Push model?

node.js - 使用nodejs读取git更改的文件

git - 宣布 git push -f 而其他人都在做 git pull --rebase 有什么不好

git - 使用接收后 Hook 创建 zip

git - 如何查看包含 git-staged 更改的文件

git - 如何使用 Azure DevOps REST API 计算所有 pull 请求

git - 我应该将 master merge 到一个分支,然后再 merge 回 master 吗?

git - 列出 Git 在 a 和 b 之间的提交,仅考虑 b 的第一个 parent 和 a 的第一个 parent