有没有办法从我的分支中提取主更改?

Posted

技术标签:

【中文标题】有没有办法从我的分支中提取主更改?【英文标题】:Is there a way to pull the master changes from my branch? 【发布时间】:2015-08-01 00:04:08 【问题描述】:

我正在做一个 3 分支项目。

我在branch1,有master分支。

当我需要从 master 中提取和合并某些内容时:

git checkout master
git pull origin master
git checkout branch1
git merge master

有没有办法从我的分支中提取主更改,这样我就不需要进行合并了?

类似:

git pull origin master

但是从 branch1 没有切换到 master 分支。

编辑

简历:

我有3个分支:每次master有新东西,我都不想切换到分支master。我想要的只是将主新功能拉到我的分支中,而不是去主分支。

【问题讨论】:

有点不清楚你所说的pull是什么意思。拉取和合并是两个不同的概念。 我认为你需要切换到一个分支来拉,以防发生冲突 - 你无法在不签出的情况下解决冲突......但永远不要说永远不要使用 git。 @CommuSoft 如果我将更改从 master 拉到我的分支,那么我不需要合并对吗? 您可以进行 mergerebase... 嗯,你的意思是from你的主人还是to你的主人有点不清楚。你想更新master,还是你的分支... 【参考方案1】:

您可能想要使用 rebase,以便您可以将主更改合并到您正在工作的分支中

git fetch origin            # Updates origin/master
git rebase origin/master    # Rebases current branch onto origin/master

另请查看this 问题

更新:最近的 Git 版本提供了一种更简单的方法来执行上述两个命令的等效操作。

git pull --rebase origin master
# where --rebase[=(false|true|merges|preserve|interactive)]

【讨论】:

除非您提供更好的解释,否则这应该是一条评论。 我赞同这个答案,但你应该在使用它之前阅读 rebase - 有后果。【参考方案2】:

从已签出 branch1 的工作文件夹中:

git fetch
git merge origin/master

fetch 将远程仓库中的更改下载到您的计算机,但不会将它们应用到您的工作文件夹。 合并会将您刚刚下载的内容应用到您的工作文件夹(无论您当前所在的分支)

【讨论】:

以上是关于有没有办法从我的分支中提取主更改?的主要内容,如果未能解决你的问题,请参考以下文章

为什么我的远程主分支中的更改没有被拉到本地主分支中?

在 gitlab 中更改默认分支

有没有办法从glm中的视图矩阵中提取变换矩阵?

将旧更改移出主分支 [重复]

您如何合并已恢复的提交?

为啥 Git 说我的主分支“已经是最新的”,即使它不是?