哪些年,我们玩过的Git (4)

此时,我们可以发现工作区中的内容发生了修改,并且与我们上一次提交后版本库中的内容不一致,这个时候,Git就会提醒我们需要再次进行add、commit操作来将修改后的文件添加并提交至版本库。另外,我们也可以使用diff命令来查看据上次提交所修改的内容:

1# 查看据上次提交所修改的内容
2git diff paper.txt

当确认文件修改的内容无误之后,我们就可以使用add、commit操作来提交我们的文件到版本库中:

1# 添加至暂存区
2git add paper.txt
3# 提交至版本库
4git commit -m "finished the summary" paper.txt
5# 查看状态
6git status paper.txt

OK,Taoye从白天刚到深夜。如次一来,总算是完成了老师给的要求,兴奋的将内容提交给老师审阅,然后又继续打王者了。

版本的回退

Taoye连续打了12h的游戏,有点累了。重新打开自己完美的论文欣赏一下,却突然发现有几个错别字,这种低级错误实属不应该出现啊。思虑半刻,Taoye修改之后,再次add commit就完事了:

paper.txt修改之后的内容:

1Oh, my god, I will write my graduate paper.
2Come on, Taoye!
3
4I have finished the summary today!
5Some typos have been fixed.

再次add、commit操作:

1git add paper.txt
2git commit -m "fixed the typos" paper.txt

也就是说,现在我们论文总共是有三个版本,分别是:初始化的论文、完成摘要的论文、修改错别字后的论文。我们可以通过log命令来查看各种版本的论文文件:

1# 显示各种版本文件的详细信息
2$ git log paper.txt
3# 通过一行简单显示文件的信息
4$ git log --pretty=oneline paper.txt
5d7938315aa0f4a4d40c6a94a10ab8db25b50e23b (HEAD -> master) fixed the typos
6454cc579f0fe51fdfd97132384a9c5fcaa1993c2 finished the summary
7dc1dcd9501dec52e6160ce98bb5c118abb805289 start writing my paper

从以上log的输出信息,我们可以知道所提交文件的所有历史记录,其中记录了提交时间、提交作者(邮箱)、提交说明(-m)等信息。并且如果我们仔细一看,会发现每一个版本的文件都会对应一个commit id,这个id其实就相当于每一个版本的唯一标识。比如,从上面的输出结果,我们可以得到第一个版本的commit id = dc1dcd9501dec52e6160ce98bb5c118abb805289,而这个commit id的作用就是方便我们日后自由“穿梭”到各个版本(就是一种穿越时空的意思)。

Taoye的论文指导老师审阅了摘要内容之后,正言厉色的说道:“你这写的啥玩意儿?牛头不对马嘴,而且居然还有错别字?”

没办法了,Taoye只能虚心接受老师的批评,再次苦逼的修改论文了。

我们现在论文是版本三,有没有一种快速有效的方法回退到版本一呢???在Git中,我们可以通过git reset --hard来实现这个需求,也就是版本的回退。版本的回退可以用两种形式,一种是通过HEAD来基于当前版本进行回退,另一种是通过commit id来回退到指定的版本,其用法如下所示:

1# HEAD表示的是当前版本,可以通过HEAD^回退到上一个版本
2git reset --hard HEAD^
3git reset --hard HEAD^^     # 回退到上上版本,回退到多少个版本之前就使用多少个^
4git reset --hard HEAD~50    # 回退到50个版本之前
5
6# 指定commit id来进行版本回退
7git reset --hard dc1dcd

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdfzz.html