再次创建新版本
✨我们再来创建一个新的版本:
🍗对刚才的txt文件随机删除几个字符,然后使用git status查看状态:
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命令查看。
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命令提交新的版本。
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。
⌛这时,我们有了两个版本:
版本回退
🎉创建版本有什么用呢?怎么进行版本控制?现在我们来看一下Git怎么进行版本回退。
🎨顾名思义,版本回退就是还原到之前的某一个时间点的文件。
比如:腾讯QQ发布了个新版本,却发现不稳定,存在漏洞,需要紧急恢复老版本,这时候就用到版本回退了。
😘首先,我们使用 git log 命令查看提交日志:
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^ 命令:
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git reset --hard HEAD^
HEAD is now at ebec5bf Creat a new file
🐷现在,我们的Readme.txt就回到了上一个版本,也就是刚创建时候的状态。
当前仓库中版本示意图:
再次使用git log查看版本记录:
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查看版本变更记录。
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):
Administrator@LAPTOP-89OP7KJM MINGW64 ~/Desktop/LearnGit (master)
$ git reset --hard 1a1f981
HEAD is now at 1a1f981 change a text
😋现在, 文件再次回到了修改后的状态,使用git log查看下目前的版本信息:
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
👍目前的版本状态:
总结
📕本节学习了 git reset、git reflog命令,并且了解了版本回退和各个版本的关系。
😋我们在进行版本回退的时候,实际是修改了指向最新版本的Head指针,并不涉及各个版本的修改,所以版本切换速度很快。
🚩创作不易,本人保证所发文章均为精心筹备。
💌如需转载,请保留作者信息和博客地址。
📡如果感觉博客对你略有帮助,欢迎转发给你的朋友,让他们加入到技术风暴中来吧!