历史版本操作

2021-10-09 23:53:23
admin
1450
最后编辑:admin 于 2021-10-10 00:06:58

查看历史版本

当我们用 commit 命令提交过版本之后,便可以使用 git log 命令查看所有的历史提交(commit)信息。

$ git log

git005.png

如上图所示:在每个版本的信息中,Git给每个版本都分配了一个独一无二的哈希值长字符串,用于区分版本(通常使用时,只需取其前五位即可)。

生成变更日志

一些项目要求生成变更日志。若要生成一个变更日志,通过输出重定向实现:

$ git log > ChangeLog

穿梭回历史版本

当你修改东西时发现自己改乱了,自己都理不清了,想返回到 上一次提交的版本,则可以使用 reset 命令。

git reset --hard

注意:

如果你之前提交过多个版本,你也可以使用 reset 命令返回到过去指定的某一个版本(用哈希值指定版本):

$ git reset --hard 3715

但是, 此命令会 从记录里永久抹掉该指定版本之后提交的所有版本。

比如你之前提交过1、2、3、4、5 五个版本,当你用 reset 命令返回到第3号版本时,后面的 4和5 两个版本就被抹掉(不存在)了。

那么问题来了,我想回到之前某个版本,但其后的版本又不想删除,该怎么操作呢?这时就用到了另一个命令:checkout 。

$ git checkout 3715

checkout 操作将把你带回过去,同时也保留其他版本。

然而正因如此,你也要清楚,你是无法改变历史的。所以,当你返回过去某个版本之后,想再继续提交一个新版本时,不会覆盖其后原有的版本,而会新开一个分支(分支相关内容我们后面讲解)。

同时,我们应该在每次运行 checkout 之前提交(commit)或重置(reset)你的改动。

注意:任何时候你觉得对运行某个命 令不放心,无论是不是Git命令,就先运行一下

 git commit -a 。

总结

使用 git log 命令查看提交的历史版本记录。

使用 git reset --hard 命令回溯到某个指定历史版本,并清除其后的版本。

使用 git checkout 命令回溯到某个指定历史版本,同时并不影响其他版本,其后再新建版本则会新建一个分支。