共计 1224 个字符,预计需要花费 4 分钟才能阅读完成。
集中化版本控制系统
分布式版本控制系统
Git 工作原理
Git 文件的四种状态
- Untracked: 未退出到 git 库,即文件未被跟踪。通过 git add 能够变为 Staged 状态
- Unmodified:曾经退出 git 库, 未修改, 即版本库中的文件快照内容与文件夹中还完全一致。应用 git remove 移出版本库, 则成为 Untracked 文件。
- Modified:文件被批改
- staged:暂存状态. 执行 git commit 则将批改同步到库中, 此时版本库中的文件和本地文件又变为统一, 文件为 Unmodified 状态.
Git 工作区域
- Workspace:本地的文件和目录
- Index/Stage:暂存区,即 记录用户操作,个别寄存在 .git 目录下,即.git/index, 长期寄存未提交的改变。
- Repository:本地版本库,git clone 就是把近程仓库克隆到本地仓库。其中HEAD 指向最新放入仓库的版本。执行 git commit,文件改变提交到本地版本库。
- Remote:近程仓库,相似 github
Git 工作流程
- 从近程仓库拉取文件代码;
- 在 workspace,增删改查;
- 提交文件至暂存区;
- 提交文件至本地版本库;
- 本地版本库文件推送至近程仓库;
Git 根本常用命令
git 初始化配置
git --version 查看 git 版本
git config --list 查看是否配置用户和邮箱(每次提交都会援用 - 必配)git config --system 以后设施的所有用户
git config --config 只实用于以后用户
git config 仅对以后我的项目其作用
git config --config user.name "demo" 指定用户
git config --config user.email "123@qq.com" 指定邮箱
git 目录构造
git init 初始化仓库
find ./ -type f 查看文件,不包含目录
git 对象(存储内容)
key(hash 值):value(数据)
echo 'test content' | git hash-object -w --stdin 规范输出流存储数据(返回对应的 hash 值)git hash-object 文件门路(返回对应的 hash 值)git cat-file -p hash 值 查看对应的文件内容
git cat-file -t hash 值 查看对应的对象
树对象(存储 git 对象,暂存区快照版本)
和 stage 区域无关,git 对象和 stage 区域无关
暂存区的数据提交到版本库后,暂存区的信息不会失落
git ls-files -s 查看 stage/index 区域的信息
find ./.git/objects/ -type f 查看版本库信息
commit 对象(版本库我的项目版本)
封装树对象,即用户、正文等
git add
理论流程:workspace 先提交到版本库再提交到暂存区,不是惯例了解的提交
git add . 增加当前目录的所有文件到暂存区
git add [dir] 增加指定目录到暂存区,包含子目录
git add [file1] 增加指定文件到暂存区
正文完