一切都在分支上。我们做了些改变。但没用。我们返回了三次提交,并创建了一个分支来测试另一个想法。这招奏效了现在我们希望分支成为主分支。我想我们会合并它们,但是我们不需要master上的三个提交中的任何东西。如何继续?
ufj5ltwl1#
只需在master分支上执行硬重置到另一个分支:
master
# from master git reset --hard other
或者,如果你知道other分支头部的SHA-1哈希值,你也可以硬重置为:
other
# from master git reset --hard 1a2b3c4d
mepcadol2#
git checkout master git reset --hard @~3 git rebase <new branch that works>
HTH
nuypyhwy3#
如果你想从版本控制历史中清除你失败的尝试,使用this solution。但是如果你想保留提交历史,或者你不能强制推送到master分支,你可以做以下操作,这将为revert和merge创建一个额外的提交:
revert
merge
git checkout master git revert HEAD~3 git merge your_other_branch
7vux5j2d4#
您需要编辑合并策略
git checkout new_branch git merge --strategy=recursive -Xours master git checkout master git merge new_branch
或者,您可以从master分支回滚更改,然后将新分支的基础设置为master。编辑:要添加到最后一条语句,命令如下:
git checkout master git revert HEAD~3 git rebase new_branch
4条答案
按热度按时间ufj5ltwl1#
只需在
master
分支上执行硬重置到另一个分支:或者,如果你知道
other
分支头部的SHA-1哈希值,你也可以硬重置为:mepcadol2#
HTH
nuypyhwy3#
如果你想从版本控制历史中清除你失败的尝试,使用this solution。但是如果你想保留提交历史,或者你不能强制推送到master分支,你可以做以下操作,这将为
revert
和merge
创建一个额外的提交:7vux5j2d4#
您需要编辑合并策略
或者,您可以从master分支回滚更改,然后将新分支的基础设置为master。
编辑:要添加到最后一条语句,命令如下: