Git撤销已合并提交的多种姿势

这篇具有很好参考价值的文章主要介绍了Git撤销已合并提交的多种姿势。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#Git撤销已合并提交的多种姿势

在Git中,合并分支是一个常见的操作,但有时候可能会意外地将错误的提交合并到了主分支。这时候需要撤销已合并的提交并恢复到正确的状态。本文将介绍的是如何在Git中撤销已合并的提交,无论这个提交记录是最新的还是中间的某一个。

撤销最新合并的一次提交

如果要撤销最新的合并提交,可以使用git revert命令来创建一个新的提交,撤销错误的变更。

  1. 首先使用git log命令查看提交历史,找到最新的合并提交。

$ git log
commit c3d2e9a4e2a1e285ff4d8f06e01d4e3f19b532ea (HEAD -> master)
Author: Hanmeimei <hanmeimei@example.com>
Date:   Fri Jun 30 15:26:43 2023 +0800

    Incorrect merge commit

commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b
Author: Lilei <Lilei@example.com>
Date:   Thu Jun 29 18:20:56 2023 +0800

    Correct commit

...

在上面的示例中,大家可以看到最新的错误合并提交(Incorrect merge commit)。

  1. 使用git revert命令撤销合并提交,并创建一个新的提交来还原到正确的状态。

$ git revert c3d2e9a4e2a1e285ff4d8f06e01d4e3f19b532ea

Git将自动创建一个新的提交,撤销错误的合并提交。

  1. 使用git loggit show命令验证新的提交历史,确认错误的变更已经被撤销。

$ git log
commit b254d0f063b4ab4e7b78fb42015e0c55e0e98712 (HEAD -> master)
Author: Hanmeimei <hanmeimei@example.com>
Date:   Fri Jun 30 15:46:28 2023 +0800

    Revert "Incorrect merge commit"

    This reverts commit c3d2e9a4e2a1e285ff4d8f06e01d4e3f19b532ea.

commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b
Author: Lilei <lilei@example.com>
Date:   Thu Jun 29 18:20:56 2023 +0800

    Correct commit

...

在这里可以看到一个新的提交(Revert "Incorrect merge commit")被创建,它撤销了最新的错误合并提交。

撤销最新合并的多次提交

如果要撤销最新合并的多次提交,可以使用git reset命令来回滚到某次提交。以下是步骤:

  1. 首先使用git log命令查看提交历史,找到要回滚的哈希值。

$ git log
commit c5b890eee2edf9a353ec6bba0543e41d2529a8f8 (HEAD -> master)
Author: Hanmeimei <hanmeimei@example.com>
Date:   Mon Jul 3 15:12:10 2023 +0800

    Incorrect merge commit

commit 82bcf43083a4dc8c87091ebde4dd5374f0c6e274
Author: Hanmeimei <hanmeimei@example.com>
Date:   Mon Jul 3 15:11:54 2023 +0800

    Incorrect merge commit2
    
commit 60a52b00d0ee2703156231e209e8aad115919aee
Author: Hanmeimei <hanmeimei@example.com>
Date:   Mon Jun 26 06:32:35 2023 +0000

    Correct commit

...

在这里需要回滚到(Correct commit)。

  1. 使用git reset 命令撤销合并提交,并创建一个新的提交来还原到正确的状态。

$ git reset --soft 60a52b00d0ee2703156231e209e8aad115919aee // 暂存区
$ git reset --hard 60a52b00d0ee2703156231e209e8aad115919aee // HEAD 指向此次提交记录
$ git push origin HEAD --force // 强制推送远端

注意:此次提交之后的修改不做任何保留,git status查看工作区是没有记录的。

  1. 最后,使用git loggit show命令验证提交历史,确认错误的变更已经被撤销。

$ git log
commit 60a52b00d0ee2703156231e209e8aad115919aee (HEAD -> master)
Author: Hanmeimei <hanmeimei@example.com>
Date:   Mon Jun 26 06:32:35 2023 +0000

    Correct commit

...

如果出现了误删,可以用以下办法来恢复:

$ git reset --hard 82bcf43083a4dc8c87091ebde4dd5374f0c6e274 // 误删的哈希值

 HEAD is now at 82bcf4308 feat: Incorrect merge commit2
 
$ git push origin HEAD --force // 强制推送远端

撤销中间合并某一个提交

如果要撤销中间的某一个合并提交,可以使用git revert命令,并指定要撤销的提交哈希值。

  1. 首先使用git log命令查看提交历史,并找到要撤销的中间合并提交。

$ git log
commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b (HEAD -> master)
Author: Lilei <lilei@example.com>
Date:   Wed Jun 21 12:00:00 2023 +0000

    Correct commit
    
commit a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0
Author: Hanmeimei <hanmeimei@example.com>
Date:   Fri Jun 18 12:00:00 2023 +0000

    Incorrect merge commit
    
...

在这里可以看到一个中间的错误合并提交(Incorrect merge commit)。

  1. 然后使用git revert命令撤销合并提交,并创建一个新的提交来还原到正确的状态。

$ git revert a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0

Git将自动创建一个新的提交,撤销错误的合并提交。

  1. 最后使用git loggit show命令验证新的提交历史,确认错误的变更已经被撤销。

$ git log
commit b254d0f063b4ab4e7b78fb42015e0c55e0e98712 (HEAD -> master)
Author: Hanmeimei <hanmeimei@example.com>
Date:   Mon Jun 28 12:10:00 2023 +0000

    Revert "Incorrect merge commit"

    This reverts commit a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0.

commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b
Author: Lilei <lilei@example.com>
Date:   Wed Jun 21 12:00:00 2023 +0000

    Correct commit
    
commit a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0
Author: Hanmeimei <hanmeimei@example.com>
Date:   Fri Jun 18 12:00:00 2023 +0000

    Incorrect merge commit

...

可以看到之前的提交仍会保留在git log中,而此次撤销会做为一次新的提交(Revert "Incorrect merge commit")。

注意

在执行撤销操作之前,请一定要确保你了解操作的后果,并在进行任何更改之前创建备份或保存重要的数据。

- END -

关于奇舞团

奇舞团是 360 集团最大的大前端团队,代表集团参与 W3C 和 ECMA 会员(TC39)工作。奇舞团非常重视人才培养,有工程师、讲师、翻译官、业务接口人、团队 Leader 等多种发展方向供员工选择,并辅以提供相应的技术力、专业力、通用力、领导力等培训课程。奇舞团以开放和求贤的心态欢迎各种优秀人才关注和加入奇舞团。
文章来源地址https://www.toymoban.com/news/detail-557218.html

到了这里,关于Git撤销已合并提交的多种姿势的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 撤销已提交但未推送的 Git 提交

    撤销已提交但未推送的 Git 提交 在开发过程中,我们经常使用 Git 来进行版本控制。在使用 Git 进行开发时,我们通常会进行一系列的提交操作,以记录代码的变更历史。有时候,我们可能会意识到刚刚提交的代码存在问题,或者需要进行修改。在这种情况下,我们可以使用

    2024年02月05日
    浏览(52)
  • git 撤销中间某次提交,保留其他提交的方法

    今天上班脑抽了,吧test直接合到了uat,因为项目近期就我一个人开发,自己拉个三个分支再改不同的东西,最后都是发到test分支发测试,发生产的时候一个个和嫌麻烦,直接吧test分支怼到了uat,结果生产就出问题了,之前同事改的代码合了test,但是还没改完,不能上生产,

    2024年02月12日
    浏览(42)
  • 在git中如何撤销分支合并

    一个项目,主要开发在dev分支,目前dev分支有需求A,在别的菜单页面也有一个需求B,于是在dev分支下新建了一个分支dev_b,打算等A需求上线,再合并dev_b分支到dev。 具体的操作步骤: 在本地切换到dev分支:git checkout dev 新建一个dev_b分支:git checkout -b dev_b 在dev_b分支上开发

    2024年02月07日
    浏览(41)
  • Git提交误操作的撤销方法和Git Flow详解

    在日常的开发中,难免会出现一些误操作,比如不小心提交了错误的代码或者不应该提交的文件。这时,我们需要知道如何撤销这些误操作,以保证代码库的稳定和整洁。同时,为了更好地管理项目的开发流程,团队通常会采用一些开发流程模型,其中Git Flow是一种常用的模

    2024年01月20日
    浏览(48)
  • git 如何撤销某次远程仓库的提交

    要撤销某次远程仓库的提交,可以按照以下步骤操作: 首先使用 git log 命令查看需要撤销的提交的 SHA-1 值。例如: 上面的 git log 输出显示两个提交,其中最新的提交是一个被称为“revert commit”的提交,它用于撤销另一个提交(即前一个提交)。 使用 git revert 命令来创建一

    2024年02月11日
    浏览(54)
  • git撤销某一次commit提交

    如果您想彻底删除 Git 中的某次提交的内容,可以使用 git rebase 命令并将该提交删除。 以下是删除 Git 提交内容的步骤: 找到要删除的提交的哈希值。可以使用 git log 命令查看提交历史记录,然后找到要删除的提交的哈希值。 在终端中使用 git rebase -i 命令并指定要删除的提交

    2023年04月12日
    浏览(47)
  • 使用idea撤销git中间的提交

    在平时的开发中,经常会碰到提交的代码需要撤销,但是又有别人提交了代码,这种时候我们需要只撤销中间的提交,不影响前后提交的代码,可以用命令 git revert 撤销,也可以使用 idea 可视化撤销,这里介绍使用 idea 操作。 例子是三次提交的内容。 如果我们想要撤销第二

    2024年02月12日
    浏览(60)
  • git撤销一次代码提交方法

    以下方法亲测有效,但是根据需求选择哦~ 友情提示,注意备份! 方法一: 1. 删除上一次提交 ,或者 撤销上一次合并 , reset 方式是将 HEAD 指针指到指定提交,历史记录则不会出现你删除的上步 commit 记录等,合并时间线等都会删除彻底,并删除 merge 操作所产生的所有代码

    2024年02月11日
    浏览(46)
  • git撤销还未push的的提交

     怎样撤销掉上图中的提交呢 使用以下代码即可提交

    2024年02月09日
    浏览(42)
  • git 撤销已经push到远程的提交

    工作中会有很多时候提交git的时候会提交错东西,而且已经push到远程的话怎么办呢? 一种常见的方法是使用 git revert 命令来创建一个新的提交,撤销先前的提交。这种方法会保留撤销提交的历史记录,并且不会改变已经推送到远程仓库的历史记录。 以下是使用 git revert 撤销

    2024年02月04日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包