我知道这已被问了很多,但我还没有真正看到一个好的答案。这是我正在寻找的。
我们在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
答案 0 :(得分:1)
在默认的rebase master
情况下会发生的事情是,自master和你的功能分支的merge-base之后的所有提交都会被重放,其中一些提交会与已经应用的压缩提交冲突。
但是,如果您知道从功能分支合并到master的最后一次提交,那么您只能在feature_branch上的LASTCOMMIT之后应用提交。
git rebase --onto=master LASTCOMMIT feature_branch