【Git】git revert 命令(撤销 commit 改动)

打印 上一主题 下一主题

主题 819|帖子 819|积分 2457

基本语法

   Git revert命令用于通过创建一个新的commit来撤销一个或多个之前的commit。如许做的利益是保持了项目汗青的完备性,并且可以将撤销的改动应用到其他分支。
  

  • 撤销单个commit:假如你只想撤销一个commit,你可以使用以下命令
  1. git revert <commit_hash>
  2. git revert 131b7a916560c549e598ca9c66c2a3d28c7508e9
复制代码

  • 撤销多个commit:假如你想撤销多个commit,你可以使用以下命令
  1. git revert <commit_hash1>..<commit_hash2>
  2. git revert 131b7a916560c549e598ca9c66c2a3d28c7508e9..7a5b4709656e614deab37eb19e355ba9e724eb
复制代码

  • 使用交互式revert:假如你想在撤销多个commits时选择性地进行,你可以使用-i选项进入交互式模式
  1. git revert -i
复制代码
使用案例


  • 假设本次提交commit页面有题目,需要回退
  1. # 查看最近 2 次commit记录
  2. ➜  git log -2
  3. commit 1111fec75f226f83822f6ceda92704d39f3d443
  4. Author: 流星
  5. Date:   Mon Apr 22 14:24:11 2024 +0800
  6.     fix: 本次发布的commit代码改动"
  7. commit 22229139486c6a59399b581df1c060b5f5846cf0
  8. Author: 流星
  9. Date:   Mon Apr 22 11:18:01 2024 +0800
  10.     feat: 历史页面
  11. ~
复制代码

  • 选择需要撤销的 commit 版本号,输入:wq并回车确定
  1. ➜  git revert 1111fec75f226f83822f6ceda92704d39f3d443
  2. Revert "fix: 本次发布的commit代码改动""
  3. This reverts commit 1111fec75f226f83822f6ceda92704d39f3d443.
  4. # Please enter the commit message for your changes. Lines starting
  5. # with '#' will be ignored, and an empty message aborts the commit.
  6. #
  7. # On branch lsmas
  8. # Your branch is up to date with 'origin/test'.
  9. #
  10. # Changes to be committed:
  11. #       modified:   src/pages/ListDetailPage/index.tsx
  12. #
  13. ~                                                                                                                                                                                                                                                
  14. ~                                                                                                                                                                                                                                                
  15. ~                                                                                                                                                                                                                                                
  16. ~                                                                                                                                                                                                                                                
  17. ~                                                                                                                                                                                                                                                
  18. ~                                                                                                                                                                                                                                                
  19. ~                                                                                                                                                                                                                                                
  20. ~                                                                                                                                                                                                                                                
  21. ~                                                                                                                                                                                                                                                
  22. ~                                                                                                                                                                                                                                                
  23. ~                                                                                                                                                                                                                                                
  24. ~                                                                                                                                                                                                                                                
  25. ~                                                                                                                                                                                                                                                
  26. :wq
复制代码

  • 这就是成功的提示信息,这时候这条commit上的所有文件改动都会复原。
  1. ➜  git revert aa69cfec75f226f83822f6ceda92704d39f3d443
  2. [lsmas 74239f9] Revert "fix: 本次发布的commit代码改动""
  3. 1 file changed, 26 insertions(+), 5 deletions(-)
复制代码

  • 再次检察commit记载就会发现,多了一条回退的记载。
  1. ➜  git log -3
  2. commit 33339f9dcc7f4c094ae3dd07243048772338bdc3
  3. Author: 流星
  4. Date:   Mon Apr 22 14:52:31 2024 +0800
  5.     Revert "fix: 本次发布的commit代码改动"
  6.    
  7.     This reverts commit 1111fec75f226f83822f6ceda92704d39f3d443.
  8. commit 1111fec75f226f83822f6ceda92704d39f3d443
  9. Author: 流星
  10. Date:   Mon Apr 22 14:24:11 2024 +0800
  11.     fix: 本次发布的commit代码改动"
  12. commit 22229139486c6a59399b581df1c060b5f5846cf0
  13. Author: 流星
  14. Date:   Mon Apr 22 11:18:01 2024 +0800
  15.     feat: 历史页面
复制代码

  • 竣事后再重新 push 发布,用回退后的版本代码覆盖有题目的代码。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表