版本控制:
版本控制可以有四种方式:
- 通过拷贝然后进行修改,此时电脑会看到有许多文件,每个文件就是一个版本
- 本地版本控制:在自己电脑上装一个软件,然后电脑上只会看到一个文件,但是之前的版本会保存起来到某个地方
- 集中式版本控制(比如SVN):本地版本控制在不同主机上无法进行协作,所以选择把所有版本存在中央服务器上
- 分布式版本控制(比如git):集中式版本控制一旦主机和服务器之间断开了连接或者服务器出现故障,就无法正常运行,因为每个主机上只存在一个版本。而分布式版本控制除了在服务器(github或者gitlab)上有不同的历史版本,在主机上也会有不同的历史版本。假设主机A更新了一个版本V4,则它会先将这个版本推送到本地,再推送到服务器,这样即使服务器挂了在本地也有V4。
git的快速使用:
-
进入需要管理的文件夹 -
git init :初始化当前的文件夹,即git来管理这个文件夹 -
git status :检测当前目录下文件的状态,三种状态的变化如下:
-
红色:新增的文件/修改了的文件,此时执行git add 文件名(.表示将当前文件夹的所有文件add) ,查看状态时则变为绿色 -
绿色:git已经管理的文件,但是还未生成版本,此时执行git commit -m 描述信息 后生成版本,查看状态时显示work tree clean -
无内容:生成了版本 -
在生成版本前需要进行个人信息的配置:
-
git log :查看版本记录
git的三个区域:
工作区:正在操作的文件夹,分为两种状态:已管理的文件和新/修改的文件(即红色部分),git会自动检测这两个状态并进行已管理->新/增的转换
暂存区:工作区到暂存区就是从红色变为绿色,即使用git add命令。这个区域可以视为缓冲区
版本库:从绿色部分部分变为无内容,即使用git commit命令
回滚:
假设有三个版本,V1, V2, V3:
git reset --hard '需要回滚的版本号(hash编码)' :当使用该命令回滚到V2的时候,此时使用git log 命令去查版本,V3是不见的。此时需要使用:
git reflog :使用完该命令会出现之前版本的版本号,再使用回滚命令即可
总结
git checkout :假设在index.html中进行了修改(在此之前working tree clean ),即在工作区有文件变动到红色区域。此时使用git checkout --index.html 就可以将改动的内容还原,即所有文件都已控制。
git reset Head :假设已经将index.html的修改进行add到暂存区,则可以使用git reset HEAD index.html 将index.html的修改返回到红色部分
参考
https://www.bilibili.com/video/BV17r4y1K7HB?p=1->https://www.bilibili.com/video/BV17r4y1K7HB?p=8
|