介绍, git 的 工作原理
要操作 git 必须严格按照以下步骤来进行
1,设定一个需要 git 软件来管理的项目文件夹
2,在这个文件夹目录中
鼠标右键点击,使用 git Bash Here 来运行 git 程序
也可以使用 cmd 来运行 git 程序
但是文件夹路径,必须是项目文件夹路径
Mac操作系统,没有 git 运行环境,只能使用 cmd 来操作 git
3,运行 git init 命令 来初始化当前这个文件夹
初始化之后,在项目文件夹中,会生成一个隐藏文件夹 .git
这个文件夹中存储着 git 相关的系统配置信息等,非常重要,不能删除
这个初始化,跟我们格式化硬盘是两个概念
不会删除文件内容等,只是 git 操作的必要步骤
这个 git 初始化的目的
将当前这个目录文件夹,按照 git 需求进行虚拟分区
将 当前项目文件夹 , 虚拟分成了 3个 区域
区域1 : 工作区
就是我们可以看到的文件夹内容
在这个区域中的所有可视文件,都是可以被操作编辑的文件
区域2 : 缓存区
是无法看到的区域
将 工作区 中编辑好的文件,上传到 缓存区 临时存储
区域3 : 历史区
是无法看到的区域
将 缓存区 中,临时存储的文件,生成历史版本
生成的历史版本 , 可以上传到 gitHub 远程仓库中
gitHub 远程仓库
不是在项目文件夹中,是在远程仓库中,执行云存储
执行过程
上传
工作区 --- 缓存区 --- 历史区 --- gitHub
回滚下载
缓存区 --- 工作区
历史区 --- 工作区
gitHbu --- 工作区
4,具体的执行命令
上传至缓存区
4-1 初始化命令
git init
4-2 查看当前缓存区中的内容
git status
4-3 将一个文件,上传至缓存区
git add 文件名
4-4 将一个文件夹内容,上传至缓存区
git add 文件夹名
4-5 将项目文件夹内容,全都上传至缓存区
git add . 英文点 / git add --all
总结: git add 添加的,不是文件,而是文件的内容节点
是有当文件的内容发生了改变,才会有新的添加状态出现
例如,我们将所有文件,上传至缓存区
等于是在缓存区,存储当前文件内容的节点(状态)
此时将当前缓存区中所有的内容,存储为历史版本
缓存区中的文件节点会被释放
但是,我们做 git add . 将所有文件再次存储到缓存区时
如果文件状态,内容,节点,没有新的变化,是不会执行存储到缓存区的
只有文件状态,内容,阶段,发生改变,才会有新的文件节点存储到缓存区
说明:
缓存区中存储的文件是不能被编辑和修改的
如果工作区中的文件被修改,需要重新上传至缓存区
添加所有文件,点,必须是英文格式的
clear 是清屏命令,清除当前 git 操作环境中显示的内容
缓存区内容,上传至历史区,形成所谓的历史版本
git commit -m "注释内容"
将当前缓存区的所有内容,生成历史版本
注释内容可以是中文,尽量对当前的历史版本描述清晰
"2020-5-14,项目版本一,首页,登录页,注册页,内容,样式,交互"
只要查看当前历史版本,或者从gitHub上下载当前历史版本,都可以看到注释,要尽量描述清楚当前历史版本内容和功能
生成历史版本之后,缓存区中的所有缓存内容,都会被释放,不再存在
git log 查看历史版本
// commit 当前历史版本 id值
commit 46e4558770f1128aa33bcb702d6a8f91c04657cf (HEAD -> master)
// author 执行当前操作人员的人员姓名和人员邮箱
Author: ShuaiQiLaoZhang <32991789@qq.com>
// date 当前历史版本的时间
Date: Wed May 13 11:10:07 2020 +0800
回滚操作:
从缓存区回滚到工作区
// 从缓存区,将一个文件回滚到工作区
git reset HEAD -- 文件名
将 缓存区 中的文件,撤销回滚,缓存区就不会再存储这个文件的内容
这个撤销回滚操作,不会覆盖影响当前工作区中的文件的内容
// 将文件夹中的内容,从缓存区撤销
git reset HEAD -- 文件夹名称
// 将所有文件内容,从缓存区撤销
git reset HEAD -- .
切换当前使用的 本地历史版本
git reset --hard 要回滚的历史版本id
切换之后,是为了向 gitHub 中上传本地历史版本内容
关于历史版本的说明:
历史版本一旦生成是无法删除的
所谓的历史版本,是已经存储的文件的当前状态
之后新的历史版本,是在之前历史版本的基础上,生成的内容
如果删除了之前的历史版本,之后的内容存储也会受到影响
就好像你回到过去,改变历史,对你现在的存在也会有影响
就好像是 超时空同居 电影中
过去的 雷佳音 做出改变 , 造成 外来的 雷佳音 消失了
因此, git 已经生成的 历史版本,不允许删除