Git   发布时间:2022-05-05  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[git]撤销的相关命令:reset、revert、checkout大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

基本概念

  1. 工作区
  2. 暂存区
  3. 本地版本仓库
  4. 远程版本仓库
@H_@R_696_11241@_12@如果不清晰上面的四个概念,请查看廖老师的git教程

@H_@R_696_11241@_12@这里我多说几句:最开始我使用git的时候,我并不明白我为什么写完代码要用git的一些列指令把我的修改
存起来。后来用多了,也就明白了为什么。git是一个“版本管理工具”,大家在写东西的时候都用过“回撤”
这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用“回撤”是找不回来的。而“版本管理工具”
就是记录每次的修改,只要提交到版本仓库,你就可以找到之前任何时刻的状态(文本状态)。

@H_@R_696_11241@_12@当然,上面我只说了一部分git的好处,只为后面的东西作为铺垫。因为,后面会说到三个关于git上面如何“反悔”、
“回到任意时候的代码”,其实就是上面说的原始的“回撤”升级版,版本管理工具的“回撤”。

checkout、reset、revert这三个指令

  • @H_@R_696_11241@_12@checkout:清空工作区的修改

    • 清空工作区修改git checkout changed_file,清空所有工作区修改git checkout .
    • 切换分支git checkout branch_name(在切换分支之前,需要清空工作区,提交到本地版本仓库或者移除工作区的东西)
    • 快速查看某个版本的代码git checkout commit_id/HEAD~last_version_num,切换到一个临时分支,内容就是指定的版本内容
  • @H_@R_696_11241@_12@reset:撤销某次提交(commit),并把这次提交的所有修改放到工作区

    • git reset HEAD~last_version_num/commit_id,注意:这个操作修改历史,所以push到
      远程仓库会出现问题,可以通过-f参数,实现强制推送。
  • @H_@R_696_11241@_12@revert:回到之前的某个版本的状态,并创建一个新的提交。

    • git revert HEAD~last_version_num/commit_id,创建一个新的commit,该内容为指定的
      版本的内容,注意:这个操作并不会重写历史,也就是原来的commit还是存在的。
@H_@R_696_11241@_12@git reset 和git revert的区别:
git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进

@H_@R_696_11241@_12@在回滚这一操作上看,效果差不多,但是日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。

大佬总结

以上是大佬教程为你收集整理的[git]撤销的相关命令:reset、revert、checkout全部内容,希望文章能够帮你解决[git]撤销的相关命令:reset、revert、checkout所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: