一、前言
- 参考安装Git 详细安装教程
- 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多
- 参考视频『Git』知道这些就够了_哔哩哔哩_bilibili,这个精华多,推荐看这个
- 参考视频7小时学会Git 基础全套完整教程(从入门到精通)_哔哩哔哩_bilibili,这个虽然长,但是他偏实践,对小白友好,特别有意思
- 附一个Git动画学习网站
- Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)
讲讲小张的感受:我没有接触过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中的临时状态
1.2工作流程
1.2.1git的工作流程:
1、在工作目录中添加、修改文件;(eg:新建 小张.java)
2、将需要进行版本管理的文件放入暂存区域;(git add 小张.java
提交JAVA程序或者git add .
提交文件目录下所有程序)
3、将暂存区域的文件提交到本地仓库。(git commit
暂存区文件提交到git仓库)
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)