文章目录
一、前言一、Git基本理论(核心)1.1工作区1.2工作流程一、前言
参考安装Git 详细安装教程参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多参考视频『Git』知道这些就够了_哔哩哔哩_bilibili,这个精华多,推荐看这个参考视频7小时学会Git 基础全套完整教程(从入门到精通)_哔哩哔哩_bilibili,这个虽然长,但是他偏实践,对小白友好,特别有意思附一个Git动画学习网站Git教程 - 廖雪峰的官方网站 ()讲讲小张的感受:我没有接触过Git
,所以看了很多视频,对于入门使用确实只要知道git clone
,git add
,git commit
,git push
,git merge
,确实也就足够了。但是我很好奇背后的原理,为什么要用git add
到暂存区而不是直接git commit
?很多指令之间为什么要按一定的顺序执行?所以这个系列我以初学的时候,小白的角度从安装到工作原理(有的是我自己的见解,如果感觉不对,欢迎指正),再到实际应用!另外,推荐看一遍第三个参考视频,然后看一下第四个参考视频,对工作原理的讲解和实际应用确实不错!
一、Git基本理论(核心)
1.1工作区
Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
Workspace:工作区,就是你平时存放项目代码的地方Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息(.git隐藏文件)Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
暂存区、仓库区不需要管理,通过命令操作即可
本地的三个区域确切的说应该是git仓库中HEAD指向的版本:
Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间.git:存放Git管理信息的目录,初始化仓库的时候自动创建Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态
Q:为什么中间多一个暂存区而不是直接提交到本地仓库?
A:使用git时候大多时候是
git add .
一次性添加所有文件,我们习惯性新做一个功能就提交一次。但是如果做了许多个功能,我们就可以分别添加暂存区,分开提交。这样可以保证提交历史的清晰。否则,想要回滚历史的时候,根本分不清每个版本包含了哪些功能,修复了哪些bug。而暂存区的作用就是为了,可以选择提交,比如你在开发B功能的时候,发现A功能还存在Bug,这时候就需要先修复A中的Bug,然后先提交修复的A中的Bug,然后再提交B功能开发的文件。这样就可以提高提交版本历史记录的清晰,方便回滚。而提交是原子性操作,文件的选择就交于暂存区去做,每一次提交都是一个完整的功能开发,保证commit的干净,降低commit的粒度
1.2工作流程
1.2.1git的工作流程:
1、在工作目录中添加、修改文件;(eg:新建 小张.java)
2、将需要进行版本管理的文件放入暂存区域;(git add 小张.java
提交JAVA程序或者git add .
提交文件目录下所有程序)
3、将暂存区域的文件提交到本地仓库。(git commit
暂存区文件提交到git仓库)
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
下一期介绍如何创建本地仓库
专栏速览:
Git使用 从入门到入土 收藏吃灰系列(一) 专栏前言Git使用 从入门到入土 收藏吃灰系列(二) Git的安装与配置Git使用 从入门到入土 收藏吃灰系列(三) Git常用命令Git使用 从入门到入土 收藏吃灰系列(四) Git工作原理Git使用 从入门到入土 收藏吃灰系列(五) Git本地仓库搭建Git使用 从入门到入土 收藏吃灰系列(六) 链接远程仓库Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥Git使用 从入门到入土 收藏吃灰系列 (八) 什么是分支 分支的作用Git使用 从入门到入土 收藏吃灰系列 (九) git reset 移除暂存区与版本回退Git使用 从入门到入土 收藏吃灰系列 (十) 详谈push、fetch、pullGit使用 从入门到入土 收藏吃灰系列 (十一) 下载所有远程仓库分支Git使用 从入门到入土 收藏吃灰系列 (十二) git merge 与 git rebaseGit使用 从入门到入土 收藏吃灰系列 (十三) git stash、git check-pick、git tag、git diffGit使用 从入门到入土 收藏吃灰系列 (十四) 清除git仓库的所有提交记录Git使用 从入门到入土 收藏吃灰系列 (十五) 自定义Git命令Git使用 (十六) Github上的小按钮Git使用 (十七) 解决Git Bash中文乱码
如果觉得《Git使用 从入门到入土 收藏吃灰系列(四) Git工作原理》对你有帮助,请点赞、收藏,并留下你的观点哦!