Git rebase回到功能开始

时间:2019-05-20 14:00:13

标签: java git rebase

我想执行一次拉取请求,但发现master在功能分支之前。

我愿意

git checkout master
git pull
git git checkout feature
git rebase origin/master

和繁荣,我收到冲突消息(预期),但是rebase还将覆盖我在功能分支中所做的每一个更改,并使用来自功能分支的数月之久的代码覆盖它们……(rebase附带的代码不在< em> any 分支afaik),其中包含来自功能分支开始的提交消息。

rebase还将删除我所有的新类,这些新类不可能与master冲突。 本地和远程主机和功能都是最新的,并显示预期的代码。但是,一旦我变基。

所以rebase希望我执行全部82次提交和冲突,而不是最近一次提交?

我只想应用我的最新代码并提交给PR大师。我不希望几个月前有人启动此功能并忘记重新设置基准时没有用的代码。...

这可能吗?

2 个答案:

答案 0 :(得分:0)

您的意思是这样的吗? 我想让我的功能分支重新基于master,但是我真的不在乎我的功能分支的历史...我只想关心分支顶部的最新代码,那么您可以使用此技巧进行合并/压缩(实际上不压缩):

git checkout my-branch
git merge origin/master # mix my code with master... don't worry about the merge or the history, we will turn it into a single revision on our next step
git reset --soft origin/master # here's the magic... all the history is gone, all we have now is your differences from origin/master on index and the branch is pointing to origin/master
git commit -m "My feature, in a single revision"

你去了

答案 1 :(得分:0)

检出特征分支,然后从master拉入您的feature分支。解决所有冲突,然后将其合并到master。这样,您就不会丢失feature branch中的任何提交。

git checkout feature-branch
git pull origin master
#resolve any conflicts if you get
git commit
git push
#pull request should be updated with your master branch contents now