热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

第3章本地项目回滚

在我在看电视的时候,我家的猫跳到了我的笔记本电脑上,踩了几脚然后跑开了。看完电视的我回到电脑前的时候惊讶地发现它把我刚才提交到仓库中的文件原文都已经删掉,并且打了一堆乱码保存了!现在我的文件长这样子:

在我在看电视的时候,我家的猫跳到了我的笔记本电脑上,踩了几脚然后跑开了。看完电视的我回到电脑前的时候惊讶地发现它把我刚才提交到仓库中的文件原文都已经删掉,并且打了一堆乱码保存了!现在我的文件长这样子:

这可怎么办啊?虽然我用猫零食打了那只猫一顿,但是失去了这么有水平的文章让我非常的心碎。在感到终极的孤独无助之后,我想到了Git管家。哪怕是在极度伤感之时,作为社会主义的接班人,我们的礼貌还是不能少的,毕竟这代表了我们的良好风貌。首先我们先要在命令行中使用git status来Git管家打招呼(切记,输入命令之前你一定要先切换到之前创建工程的目录)。

Git管家就回复了:清单上没有东西需要提交的,你可以使用git add <文件名>来把文件先提交到清单上,或者使用git checkout -- <文件名>把已经修改过的文件中修改的地方还原回去。

我一看果然有戏!于是使用git checkout -- 2022-02-22.txt来试着还原,重新打开发现我之前的内容果然又回来了!简直美滋滋!

于是我便继续写,争取早日完成这一部大作!这是我继续写的内容,独乐乐可不如众乐乐,发出来让大家感受一下:

写完之后我感觉这简直荡气回肠,令人心情舒畅。于是依次使用了以下命令将它提交到Git仓库中:

git status   //查看版本变动
git add .    //添加所有文件进Git清单中
git commit -m “吃完菠萝吃橙子”   //正式将文件添加进Git仓库中

这里第二步的git add .中的点号意思是将所有改过的、新增的文件都加到git清单中。因为有时候我们项目可能同时改几十个文件,用以前的git add <文件名>一个个添加的话可能你会奔溃的。

当我把修改好的作品提交到Git仓库后就去看电影了,在看完电影回家路上我看到一家大排档的橱窗中国挂着一只烧鸡,怎奈囊中羞涩吃不起于是只好灰头土脸地回到了家中,幻想着自己有朝一日能够啃完一整只烧鸡。这时候想起了我正在为未来的自己写一篇日志,所以我决定吃完菠萝我不吃橙子了,我要吃一整只烧鸡!但是作为一位优秀的写作者我又不想一个字一个字地删掉自己的写过的内容,否则会显得非常的没有牌面,怎么办呢愁死个人了。这时候我又想到了Git管家。由于这次不是要提交事务了,而是把文件回滚到以前的状态,于是这次的打招呼是用的git log,翻译过来就是:Git管家啊,给我看看你的账本呗:

在这里我们可以看到有两个记录,下面一个是最早时间的"add 2022-02-02 diary",上面一个是

说回我们原本的话题,从时间版本的时间上来看我可以确定下面那条记录是我需要回滚的版本!于是我使用了git reset --hard b863,让Git管家帮我将版本回滚到之前的状态。

解释:reset意思是重新设置,--hard是指所有文件都还原,而b863是我需要回滚的版本commit 后面的前四位数,你也可以把版本号全部输入进去,但是我个人在这里一般只用四位数用作回滚,如果你有特殊癖好完全可以把版本号完完全全地输入进去。这时候,我的文档又回到了原来的版本,我的创作之路又得以继续!看看我把文件回复到什么样了吧!

章节总结

这一章我们介绍了未提交文件的回滚,和已提交文件的回滚。

-> 未提交文件的回滚:
git status  // 查看那个文件被修改了。
git checkout -- <文件名>  // 对你要撤销修改的文件执行回滚

如果是要回滚多个文件的话,可以用类似于add .这里也可以用点号代替文件名。

->已提交文件的回滚:
git log  // 查看Git项目历史版本
git reset --hard <版本前四位数>  // 将项目回滚到你指定的版本

推荐阅读
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • VSCode与Gitee集成:项目提交的高效实践
    本文介绍如何利用VSCode内置的Git工具将项目提交到Gitee,简化Git命令的使用,提升代码管理效率。同时分享一些常见的踩坑经验和解决方案。 ... [详细]
  • 提升Tumblr爬虫效率与功能
    本文介绍了对之前开发的Tumblr爬虫脚本进行升级,整合了两个脚本的功能,实现了自动分页爬取博客内容,并支持配置文件以下载多个博客的不同格式文件。此外,还优化了图片下载逻辑。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • Composer Registry Manager:PHP的源切换管理工具
    本文介绍了一个用于Composer的源切换管理工具——Composer Registry Manager。该项目旨在简化Composer包源的管理和切换,避免与常见的CRM系统混淆,并提供了详细的安装和使用指南。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 深入解析Spring Boot自动配置机制
    本文旨在深入探讨Spring Boot的自动配置机制,特别是如何利用配置文件进行有效的设置。通过实例分析,如Http编码自动配置,我们将揭示配置项的具体作用及其背后的实现逻辑。 ... [详细]
  • 本文介绍了日文游戏的汉化过程及技巧,包括如何利用现有的资源和工具,以及民间汉化组的贡献。 ... [详细]
author-avatar
椰子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有