git代码回退

对于代码的回退主要有 git reset 、git revert

1.git reset

  • git reset commitId --soft:回退当前代码仓库到指定提交commitId,当前HEAD和commitId之间的修改会保留,这些修改会在暂存区。就是保留了add的状态
  • git reset commitId --hard:回退当前代码仓库的代码到指定commitId,这之间的代码会丢失。
  • git reset commitId --mixed:回退代码到commitId,修改保存在工作区,就是没有add的状态

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本,简单来说可以看到我们丢失的commitId。

2.git revert

  • git revert commitId:撤销指定提交commitId。会建立一个新的commit,这个commit的内容就是指定commitId的反向,也就是提交一个新的commit把commitId对应的修改内容还原。

总结

图例说明

  • reset是彻底回退到指定的commit版本,该commit后的所有commit都将被清除,包括提交历史记录;
  • revert仅仅是撤销指定commit的修改,并不影响后续的commit,但所撤销的commit被后续的commit修改了同一地方则会产生冲突;
  • reset执行后不会产生记录,revert执行后会产生记录;
  • reset执行后无法再次恢复,revert执行后因为不会清除记录,并且会产生新纪录,所以文件不会丢失,你可以多次执行revert恢复到某次改变之前的状态;
  • reset执行后HEAD会后移,而revert的HEAD则一直是向前的;

相关推荐

  1. git commit提交本地退

    2024-03-12 03:14:01       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-12 03:14:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-12 03:14:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-12 03:14:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-12 03:14:01       20 阅读

热门阅读

  1. LeetCode每日一题[c++]-找出字符串的可整除数组

    2024-03-12 03:14:01       21 阅读
  2. linux系统简述docker

    2024-03-12 03:14:01       19 阅读
  3. 优雅应对商业谈判中的软件质疑

    2024-03-12 03:14:01       24 阅读
  4. Nest.js总结

    2024-03-12 03:14:01       20 阅读
  5. explicit关键字详解

    2024-03-12 03:14:01       18 阅读
  6. ms office学习记录10:Excel㈣

    2024-03-12 03:14:01       17 阅读
  7. LeetCode 560 和为K的子数组

    2024-03-12 03:14:01       22 阅读
  8. LeetCode904:水果成篮

    2024-03-12 03:14:01       16 阅读
  9. 【Leetcode】top 100 子串

    2024-03-12 03:14:01       24 阅读
  10. [力扣 Hot100]Day50 二叉树中的最大路径和

    2024-03-12 03:14:01       21 阅读
  11. LaTex 笔记

    2024-03-12 03:14:01       23 阅读
  12. Docker部署的MySQL容器数据备份与导入

    2024-03-12 03:14:01       25 阅读
  13. skynet cluster集群笔记

    2024-03-12 03:14:01       18 阅读
  14. 无人机避障技术

    2024-03-12 03:14:01       21 阅读