第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 commit
提交时使用的是中文作为注解,所以会出现这种看不懂的符号。那我们以后是不是不能用中文注解来提交项目了呢?答案是否定的,因为我们可以通过其他方法来解决,比如使用GitHub的客户端等。虽然现在我们是用命令行工具来学习Git软件,但是对于但是多数人来说,只使用命令行来操作Git项目始终是一项非常不友好的体验。
说回我们原本的话题,从时间版本的时间上来看我可以确定下面那条记录是我需要回滚的版本!于是我使用了git reset --hard b863
,让Git管家帮我将版本回滚到之前的状态。
解释:reset意思是重新设置,--hard是指所有文件都还原,而b863是我需要回滚的版本commit 后面的前四位数,你也可以把版本号全部输入进去,但是我个人在这里一般只用四位数用作回滚,如果你有特殊癖好完全可以把版本号完完全全地输入进去。这时候,我的文档又回到了原来的版本,我的创作之路又得以继续!看看我把文件回复到什么样了吧!
章节总结
这一章我们介绍了未提交文件的回滚,和已提交文件的回滚。
-> 未提交文件的回滚:
git status // 查看那个文件被修改了。
git checkout -- <文件名> // 对你要撤销修改的文件执行回滚
如果是要回滚多个文件的话,可以用类似于add .这里也可以用点号代替文件名。
->已提交文件的回滚:
git log // 查看Git项目历史版本
git reset --hard <版本前四位数> // 将项目回滚到你指定的版本