再次创建新版本

✨我们再来创建一个新的版本:

🍗对刚才的txt文件随机删除几个字符,然后使用git status查看状态:

1
2
3
4
5
6
7
8
9
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: Readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

modified: Readme.txt,即检测到了Readme.txt修改,但还没有加到暂存区

(实际显示效果,modified:Readme.txt 为红色,上文还提示 use git add,表明已修改但为添加到暂存区)

🧂我们使用 add 命令将它加入暂存区,再次使用git status命令查看。

1
2
3
4
5
6
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: Readme.txt

这时候可以看到,状态变成了等待commit

(实际显示效果,modified:Readme.txt 为绿色,上文提示消失,表明修改已经添加到暂存区)

📚我们继续使用commit命令提交新的版本。

1
2
3
4
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git commit -m "change a text"
[master 1a1f981] change a text
1 file changed, 1 insertion(+), 1 deletion(-)

提交成功,一个文件被修改,修改了一行。

新的版本id为1a1f981。

⌛这时,我们有了两个版本:

change

版本回退

🎉创建版本有什么用呢?怎么进行版本控制?现在我们来看一下Git怎么进行版本回退

🎨顾名思义,版本回退就是还原到之前的某一个时间点的文件。

比如:腾讯QQ发布了个新版本,却发现不稳定,存在漏洞,需要紧急恢复老版本,这时候就用到版本回退了。

😘首先,我们使用 git log 命令查看提交日志:

1
2
3
4
5
6
7
8
9
10
11
12
13
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git log
commit 1a1f98115f5c31ceae7e52d4600b220d38fbc24b (HEAD -> master)
Author: Simplicity <290255@qq.com>
Date: Fri Dec 25 10:45:47 2020 +0800

change a text

commit ebec5bfe1c45b35a48c24c718c89f09e55a214bc
Author: Simplicity <290255@qq.com>
Date: Fri Dec 25 10:30:46 2020 +0800

Creat a new file

可以看到,我们提交了两个版本。最新的版本右边标有(HEAD -> master)

git reset

❓假设,我们想回退上一个版本,我们可以使用 git reset –hard HEAD^ 命令:

1
2
3
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git reset --hard HEAD^
HEAD is now at ebec5bf Creat a new file

🐷现在,我们的Readme.txt就回到了上一个版本,也就是刚创建时候的状态。

当前仓库中版本示意图:

return

再次使用git log查看版本记录:

1
2
3
4
5
6
7
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git log
commit ebec5bfe1c45b35a48c24c718c89f09e55a214bc (HEAD -> master)
Author: Simplicity <290255@qq.com>
Date: Fri Dec 25 10:30:46 2020 +0800

Creat a new file

git reflog

😁如果我们想再回到最新版本,也就是修改文件后的版本,又该如何操作?

🎃回退版本后git log不再显示最新版本,我们可以使用git reflog查看版本变更记录。

1
2
3
4
5
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git reflog
ebec5bf (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
1a1f981 HEAD@{1}: commit: change a text
ebec5bf (HEAD -> master) HEAD@{2}: commit (initial): Creat a new file

🚲我们可以看到,最新版本,也就是修改文件后的版本id是1a1f981。

😄我们可以使用下面的命令回到任意版本(只需知道版本ID):

1
2
3
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git reset --hard 1a1f981
HEAD is now at 1a1f981 change a text

😋现在, 文件再次回到了修改后的状态,使用git log查看下目前的版本信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git log
commit 1a1f98115f5c31ceae7e52d4600b220d38fbc24b (HEAD -> master)
Author: Simplicity <290255@qq.com>
Date: Fri Dec 25 10:45:47 2020 +0800

change a text

commit ebec5bfe1c45b35a48c24c718c89f09e55a214bc
Author: Simplicity <290255@qq.com>
Date: Fri Dec 25 10:30:46 2020 +0800

Creat a new file

👍目前的版本状态:

change

总结

📕本节学习了 git reset、git reflog命令,并且了解了版本回退和各个版本的关系。

😋我们在进行版本回退的时候,实际是修改了指向最新版本的Head指针,并不涉及各个版本的修改,所以版本切换速度很快。

🚩创作不易,本人保证所发文章均为精心筹备。

💌如需转载,请保留作者信息和博客地址。

📡如果感觉博客对你略有帮助,欢迎转发给你的朋友,让他们加入到技术风暴中来吧!