git rebase 在之前的 git merge 之后

标签 git merge rebase git-rebase

我有以下情况:

  • 我从主存储库 (X) 创建了一个 clone(Y),因为有很多人在 Y 上工作,我们没有做任何 rebase 但只有 merge 。当我们想要交付(push)Y 到 X 时,我们想做一个rebase 以使事情变得干净整洁

问题是在执行 rebase 时,我们被要求执行我们在前面的 merge 步骤中已经执行的所有 merge 。除了意味着实际重新进行 merge 的解决方案之外,是否有解决方案?

我预计它会非常简单,因为我们已经解决了 merge 冲突。

最佳答案

git merge --squash 现在是我在大量工作和许多 merge 之后首选的 rebase 方式 (see this answer)。如果您正在处理的分支名为 my-branch 并且您想从 master rebase ,那么只需执行以下操作:

git checkout my-branch
git branch -m my-branch-old
git checkout main
git checkout -b my-branch
git merge --squash my-branch-old
git commit

关于git rebase 在之前的 git merge 之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6248231/

相关文章:

git - 使用 Git stash 部分代码库

git - 如何简化 git log 以仅显示某些提交及其 merge 基础?

git - 什么会导致 "number of commits ahead"在 rebase 后发生变化?

Git rebase interactive - 如何仅对这个分支提交进行 rebase ?

git - 删除在错误的 rebase 之后引入的重复提交

git - GitOps 与传统 CI/CD 的区别

git - 无法在 git pull 请求上查找 https(端口 9418)(提供节点名或服务名,或未知)

.net - Visual Studio 2008 : how to avoid project file merge hell?

java - 在 Java 中拆分和合并大文件(大小以 GB 为单位)

c++ - 二元谓词如何工作?