丢弃 Git 次提交并将功能分支合并回 Master

Discard Git commits & merge feature branch back to Master

更新:

完成这些步骤后,我执行以下操作:

git checkout master
git reset --hard HEAD^^
git merge new-feature

然后我在SourceTree中点击push

更新: 解决方法是强制推送:

git push -f

强推后又可以了。

这应该可以解决问题:

git checkout master
git reset --hard HEAD^^
git merge new-feature

基本上,您需要将 master 分支指针向后移动两次提交,然后将 new-feature 分支合并到它。请注意 git reset --hard 是一个潜在的危险命令,因为它会丢弃对工作副本中跟踪文件的任何更改。

如果丢弃的提交已经被推送到远程,您可能需要强制推送:

git push -f 

在您的特定情况下,一个简单的

git checkout new-feature
git branch -f master
git checkout master

接着是

git push -f

应该可以解决问题。 git branch -f 命令简单地将 master 分支指向当前 HEAD,丢弃了 master.

的旧历史记录