首页 > 解决方案 > 将代码推送到过时的 git 分叉分支中

问题描述

我对 git 还是有点陌生​​。我将提交推送到分叉分支。尝试从分叉分支向主分支提出拉取请求。但是拉取请求显示了我的两个旧提交,它们已经由主分支的所有者合并。

在今天开始工作之前,我确实提取并拉上了分叉的分支。如果它们被合并,为什么会出现这些旧的提交?我需要摆脱这些旧的提交,以仅使用一个新的提交来进行干净的拉取请求。我有点困惑。请帮忙。

标签: gitgithub

解决方案


--rebase不知道您如何更新您的分支,如果您使用相同的分支,您可能需要添加标志:

git pull --rebase upstream master

这应该将您的分支快速转发到分支上的最新提交master

您可能要考虑的另一件事是更改您的工作流程。不要使用相同的分支,而是从最新的master分支(或任何目标分支)开始。如果您想使用相同的分支名称,但知道这些更改已合并到您的目标分支,请删除该分支,然后创建一个新分支。

(my-branch)$ git checkout master
(master)$ git pull upstream master
(master)$ git branch -D my-branch
(master)$ git checkout -b my-branch
(my-branch)$ // should be a fresh branch now

需要注意的一件事是,如果您收到“将 master 合并到 master”的合并提交,这意味着您在本地master分支上进行了不在远程master分支上的更改。如果您知道这些更改可以保留在master分支上,那么您应该使用该--rebase标志,以便它只是将您的当前指针快进到最新的指针,master以避免合并提交。

这篇中等帖子似乎比我在这里更深入地解释了它 - https://medium.com/@mvuksano/git-tips-use-only-fast-forward-merges-with-rebase-c80c9d260a83 .


推荐阅读