
GIT存储记录和历史记录
#头条公开课繁星计划# #听学编程之前端# #前端后端# #JavaScript WEB前端开发#
Git 使用40个16进制字符的 SHA-1 HASH 来唯一标示 git 对象
eg: e2872a378d31729eeaf1d9123dd84088273bd80b
Git 的四个对象
- blob: 标示文本文件、二进制文件、链接文件
- tree:标示 目录
- commit: 大多数标示历史提交
- tag: 指向固定的历史提交
相互关系如下:
tag = commit > tree > blob
即:
一个 tag 等于 一个 commit
一个 commit 等于很多个 tree
一个 tree 等于很多个 blob
以上就是一个 git 记录的基本结构。
存储
创建 Git 仓库
创建仓库有两个方法:
- git init 你的仓库名
- git clone
基本操作命令
- git add 添加需要保存或者提交的文件
- git commit 提交修改或保存的文件到暂存区
- git status 查看暂存区文件状态
- git rm 在暂存区删除文件
- git mv 在暂存去中移动文件,或者重命名文件
- gitignore 如果不希望某些文件不希望被添加到暂存区或者历史区
git 命令使用
创建一个本地 git 库
git init git_area
创建两个文件 a, b
touch a
touch b
把 a 、b 文件添加到暂存区
git add a b
查看暂存区文件状态
git status
把暂存区文件 命名后 提交到历史记录
git commit -m "初始化文件"
以上一个简单的提交已经完成
现在我们对 a文件做些修改后在次提交
我们可以看到我们改后的文件 a 状态是 modified: a (红色) 表示文件状态是被修改未提交
git status
把 a 文件添加到暂存区
git add a
git commit -m '修改文件a'
- git rm
如果此时我想把工作区和暂存区的 a 文件的引用删除怎么操作呢?
把工作区和暂存区的 a 文件的引用删除
git rm a
看下状态 deleted: a (绿色) 表示状态是,成功删除 a文件的引用
git status
如果我只想删除暂存区而不想删除工作目录中的文件呢
暂存区删除文件 a
git rm --cashed a
- git mv
现在要把a 文件重命名为c
git mv a c
运行 git status 查看状态: 看到 renamed: a -> c 重命名文件 a -> c
git status
其实以上操作是多个操作的集合
git mv a c 操作等于:
mv a c // 删除 a 重命名 c
git add a c // 把删除 a 重命名 c 添加到暂存区
- gitignore
如果有些文件不想被追踪,想被 git 忽略
可以在顶层文件或者你需要的文件中创建 . gitignore 文件
在文件中使用通配符告诉 git 哪些文件不想被追踪
*.[ao]
以ao结尾的文件不要追踪
*~
以~结尾的文件不需要追踪,
*.pyc
以文件名 .pyc 文件结尾的文件不被追踪
!test.pyc
但是我想 test.pyc 可以被追踪时, 可以使用!感叹号
!test.pyc
以!开头的文件之前不想被追踪,但是现在我又想让他被追踪了,使用
node_modules/
忽略 node_modules/ 文件下所有文件
.env
忽略 .env 文件
build
忽略 build 文件
关于 Git 相关知识点我会持续更新,感兴趣的小伙伴麻烦点下关注。
同时有什么不对的地方欢迎大家指正!
谢谢大家!