合并后的Git重新基址

合并后的Git重新基址,git,Git,我知道这已经被问了很多,但我还没有看到一个好的答案。这是我要找的 我们确实会把请求拉进来。 我们希望历史记录显示每个功能一次提交(隐藏合并到主功能中,因此有一次合并,一次提交)。 工作是在特性分支中完成的,提交经常发生。 Git rebase master用于重写历史以获得一次提交 我面临的问题是,当一些特性进入master时,我会将我的特性分支与master合并,并添加更多的提交。当我的代码准备好审查时,我重新设置了基础,现在git认为存在冲突 我想让历史看起来和我做的一样 $ git dif

我知道这已经被问了很多,但我还没有看到一个好的答案。这是我要找的

我们确实会把请求拉进来。
我们希望历史记录显示每个功能一次提交(隐藏合并到主功能中,因此有一次合并,一次提交)。 工作是在特性分支中完成的,提交经常发生。 Git rebase master用于重写历史以获得一次提交

我面临的问题是,当一些特性进入master时,我会将我的特性分支与master合并,并添加更多的提交。当我的代码准备好审查时,我重新设置了基础,现在git认为存在冲突

我想让历史看起来和我做的一样

$ git diff master > feature.patch
$ git checkout master
$ patch -p1 < feature.patch
$ git commit -am "[Bug-1234] Desc"

默认情况下,
rebase master
会重放自master和您的功能分支的合并基础之后的所有提交,其中一些提交与已应用的压缩提交冲突

但是,如果您知道上次提交是从功能分支合并到主分支的,那么您只能在功能分支上应用上次提交之后的提交

git rebase --onto=master LASTCOMMIT feature_branch

我假设您正在使用交互式重基来挤压提交。您确定冲突不是真实的吗?正确,使用interactive将其消除。冲突不是真实的(可能是从历史的角度,而不是从代码的角度),分支中的代码是所需要的,所有合并基本上都是我们的——这是可行的(如果我一个接一个地提交每个文件),您没有向我们显示用于合并和重新设置分支的命令。这些都会有帮助。(在我的分支中)git合并主控器和git rebase——交互式主控器可能是Im抱歉的复制品,但不确定它和git rebase主控器有什么不同。你能解释一下主要的区别吗?
git rebase --onto=master LASTCOMMIT feature_branch