合并一个分支的提交,以基于另一个分支

Merging a commit off of one branch, to be based off of another branch

我的项目有一个 master 分支和一个 staging 分支。我刚刚推了一个单独的 develop 分支,它位于 master 之外,但我需要它离开 staging.

有没有什么方法可以让 develop 分支比 master 提前 1 次提交,然后让它脱离我的暂存 branch?所以最终它只会在 staging?

之前提交一次

我可能会建议在 staging:

上对 develop 做一个简单的 rebase
git checkout develop
git rebase staging

这将重播 develop 中的所有提交,这些提交发生在 之后 stagingmaster 直接在staging 分支。但这也可能会在 staging 之上播放某些 master 提交,这听起来不像你想要的那样。

因此,如果您想做的只是在 staging 之上播放单个提交并将其设为 develop 分支,您可以尝试以下操作:

git checkout staging
git checkout -b new_develop
git cherry-pick <SHA-1 of single commit>

然后删除旧的develop分支,并将new_develop重命名为develop:

git branch -d develop
git branch -m new_develop develop