我不小心在本地主分支上运行了gitmergesome_other_branch。我还没有将更改推送给origin master。如何撤消合并?
合并后,git状态显示:
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
我如何撤销所有这些提交?
我不小心在本地主分支上运行了gitmergesome_other_branch。我还没有将更改推送给origin master。如何撤消合并?
合并后,git状态显示:
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
我如何撤销所有这些提交?
当前回答
首先,确保你已经完成了一切。然后将存储库重置为以前的工作状态:$git重置f836e4c1fa51524658b9f026eb5efa24af3a36或使用--hard(这将删除所有本地的、未提交的更改!):$git重置f836e4c1fa51524658b9f026eb5efa24af3a36--硬使用错误合并提交之前的哈希。通过以下方式检查要在先前正确版本的顶部重新提交的提交:$git日志4c3e23f529b581c3cbe95350e84e66e3cb05704f提交4c3e23f529b581c3cbe95350e84e66e3cb05704f...提交16b373a96b0a353f7454b141f7aa6f548c979d0a...通过以下方式在存储库的正确版本顶部应用正确的提交:通过使用cherry-pick(一些现有提交引入的更改)git樱桃pick ec59ab844cf504e462f011c8cc7e5667bb2e9c7或者通过以下方式选择提交范围:在合并之前首先检查正确的更改:数字差异5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f在合并之前首先检查正确的更改:git cherry pick 5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f其中这是您提交的正确提交的范围(不包括错误提交的合并)。
其他回答
首先,确保你已经完成了一切。然后将存储库重置为以前的工作状态:$git重置f836e4c1fa51524658b9f026eb5efa24af3a36或使用--hard(这将删除所有本地的、未提交的更改!):$git重置f836e4c1fa51524658b9f026eb5efa24af3a36--硬使用错误合并提交之前的哈希。通过以下方式检查要在先前正确版本的顶部重新提交的提交:$git日志4c3e23f529b581c3cbe95350e84e66e3cb05704f提交4c3e23f529b581c3cbe95350e84e66e3cb05704f...提交16b373a96b0a353f7454b141f7aa6f548c979d0a...通过以下方式在存储库的正确版本顶部应用正确的提交:通过使用cherry-pick(一些现有提交引入的更改)git樱桃pick ec59ab844cf504e462f011c8cc7e5667bb2e9c7或者通过以下方式选择提交范围:在合并之前首先检查正确的更改:数字差异5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f在合并之前首先检查正确的更改:git cherry pick 5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f其中这是您提交的正确提交的范围(不包括错误提交的合并)。
暂存gitbranch-d the_local_branchgit checkout-t<远程名称>应用git存储
这对我有用。。!!
我认为您可以执行gitrebase-I[hash][branch_name],其中[hash]是标识哈希值,表示您希望倒回的位置加上一个(或您希望返回的提交次数),然后在编辑器中删除您不再需要的提交行。保存文件。出口祈祷它应该重新缠绕。您可能需要进行一次git重置——很难,但此时应该很好。如果您不想将特定的提交保存在历史记录中,也可以使用此选项将其从堆栈中拉出,但这可能会使存储库处于您可能不希望的状态。
您可以使用git reset命令。
git reset-将当前HEAD重置为指定状态。git重置[--混合|--soft|--hard|--merge][-q][]git-reset[-q][][-]…git重置--补丁[] [--] […]
GIT重置
到了这个问题,我们也希望恢复到与原点匹配(即,在原点之前没有提交)。进一步研究发现,有一个重置命令正是针对这一点:
git重置--硬@{u}
注意:@{u}是origin/master的简写。(当然,您需要远程存储库才能实现这一点。)