合并后的Git rebase

时间:2014-06-11 23:09:32

标签: git

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

我们在Stash中提出了拉取请求 我们希望历史记录显示每个功能一次提交(stash合并为master,因此有一个合并,一个提交)。 工作在功能分支中完成,提交经常发生。 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做到这一点?基本上接受他们在HEAD中的一切。

编辑:

这是让我进入这个地方的命令

(feature/awesome) $ git merge master #resolve conflicts
(feature/awesome) $ git rebase --interactive master

1 个答案:

答案 0 :(得分:1)

在默认的rebase master情况下会发生的事情是,自master和你的功能分支的merge-base之后的所有提交都会被重放,其中一些提交会与已经应用的压缩提交冲突。

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

git rebase --onto=master LASTCOMMIT feature_branch