撤消 Git 分支提交和合并

Posted

技术标签:

【中文标题】撤消 Git 分支提交和合并【英文标题】:Undoing Git Branch Commit and Merge 【发布时间】:2021-06-26 23:01:41 【问题描述】:

我目前正在处理一项任务,我们在本地存储库上工作,并在完成后推送到远程存储库。我们应该使用分支,我们在将所有提交合并到我们的主分支之前进行所有提交,因此不会直接提交到主分支。

一切都很顺利,但是当我在一个分支上进行一些提交,然后将该分支合并到我的主分支中,然后返回到前面提到的分支进行更多更改,提交它们并合并之前,我遇到了一个问题它再次回到我的主分支。

我的网络树目前如下所示: network branch

问题是绿色分支在最后以哈希 2bbbd0c 分支。

我实际上是想完全撤消那个提交,只是让我的分支合并到我的主分支中,所以我的网络分支显示没有任何分支。

我的一个想法是使用 git reset –hard 2b32611 (这是我在合并到我的主分支之前在分支上的最新提交的哈希): enter image description here

然后使用 git push -f origin 2b32611:cookies-user-tracking 推送提交和分支,但我再次不确定这是否可行,我不想搞砸任何事情.

非常感谢任何建议!

【问题讨论】:

【参考方案1】:

git reset --hard 确实会将 cookies-user-tracking 重置为正确的提交(在合并之前)

你需要做的就是强制推送分支:

git push -f origin cookies-user-tracking 

【讨论】:

以上是关于撤消 Git 分支提交和合并的主要内容,如果未能解决你的问题,请参考以下文章

powershell Git撤消上次提交并保持本地更改

如何撤消 git 上的丢弃更改?

Git重置(撤消、丢弃)文件变更

git 使用详解—— 3种撤消操作

如何删除推送的 git 合并提交

撤消 git reset --hard origin/master [重复]