Git 变基回到功能开始

Git rebase going back to feature start

我想做一个 pull request,但是发现 master 在 feature 分支之前。

我也是

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

繁荣,我收到冲突消息(预期),但 rebase 也会覆盖我在我的功能分支中所做的每一个更改,并用功能分支中几个月前的代码覆盖它们...(rebase 附带的代码不是在 any 分支 afaik 中)从功能分支开始提交消息。

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

所以 rebase 要我做所有 82 次提交和冲突而不是最新的提交?

我只是想应用我的最新代码并提交到 master,并获得 PR。我不想要几个月前的无用代码,当时其他人开始使用此功能并忘记了变基....

这可能吗?

你的意思是这样的吗? 我想让我的功能分支重新基于 master 但我真的不关心我的功能分支的历史......我只想关心的是最新的代码我的分支 ,那么你可以对 merge/squash 使用这个技巧(实际上没有压扁):

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"

好了

检查您的功能分支并从 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