丢弃 Git 次提交并将功能分支合并回 Master
Discard Git commits & merge feature branch back to Master
- 首先,我在 Master 分支上进行了 3 次提交:Wijzing 1, 2, 3.
- 然后我 checkout... 提交 Wijziging 1.
- 然后我创建了一个新分支 new-feature 并开始进行更改。
- 现在我想丢弃 2 个提交:Wijzing 2 和 Wijzing 3.
- 我想将 新功能 与 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
.
的旧历史记录
- 首先,我在 Master 分支上进行了 3 次提交:Wijzing 1, 2, 3.
- 然后我 checkout... 提交 Wijziging 1.
- 然后我创建了一个新分支 new-feature 并开始进行更改。
- 现在我想丢弃 2 个提交:Wijzing 2 和 Wijzing 3.
- 我想将 新功能 与 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
.