github疑难问题---2、git中的工作区、暂存区和版本库分别是什么
github疑难问题---2、git中的工作区、暂存区和版本库分别是什么
一、总结
一句话总结:
【工作区就是本机目录】:git的工作区就是我们本机的目录,比如我们git clone下来的那个仓库github_test目录
【暂存区就是暂时存放文件的地区】:git add这条命令可以将工作区中的文件加入到暂存区,我们可以把.git/index(存文件索引)和.git/objects(存修改的内容)看成暂存区
【版本库就是.git这个隐藏目录】:当我们使用git commit时,就会将暂存区的所有内容提交至main分支
二、git中的工作区、暂存区和版本库分别是什么
系列课程的视频位置:
1、error: src refspec master does not match any.-范仁义-读书编程笔记
https://www.fanrenyi.com/video/41/363
2、git中的工作区、暂存区和版本库分别是什么-范仁义-读书编程笔记
https://www.fanrenyi.com/video/41/364
3、git reset --hard HEAD~2误删操作恢复-范仁义-读书编程笔记
https://www.fanrenyi.com/video/41/365
4、github绑定ssh key-范仁义-读书编程笔记
https://www.fanrenyi.com/video/41/366
博客对应课程的视频位置:2、git中的工作区、暂存区和版本库分别是什么-范仁义-读书编程笔记
https://www.fanrenyi.com/video/41/364
工作区
git的工作区就是我们本机的目录,在电脑文件资源管理器中可以真实查看到的目录,如下图所示,我所创建的test目录就是一个工作区。
暂存区
git相比较其他版本控制工具有一个比较独特的东西,那就是暂存区。
顾名思义,暂存区就是暂时存放文件的地区,那么什么文件将被存放在暂存区呢?
相信我们会经常用到git add
这条命令,这条命令可以将工作区中的文件加入到暂存区。
例如:
在test目录中我已经创建了一个readme.txt,然后我在git bash中使用git add readme.txt
这条命令,那么readme.txt文件就被添加到暂存区了。
我们可以把.git/index 和 .git/objects看成暂存区
文件.git/index 实际上就是一个包含文件索引的目录树,像是一个虚拟的工作区。在这个虚拟工作区的目录树中,记录了文件名、文件的状态信息(时间戳、文件长度等),
文件的 内容并不存储其中,而是保存在 Git 对象库(.git/objects)中,文件索引建立了文件和对象库中对象实体之间的对应。下面这个图展示了工作区、版本库中的暂存区和版本库之间的关 系。
版本库
相信安装了git的你一定发现会多一个.git的目录,这个目录就是git的版本库,版本库中存了很多东西,其中就包含我们刚讲的暂存区,还有Git为我们自动创建的第一个分支master。
当我们使用git commit
时,就会将暂存区的所有内容提交至master分支,如果有多个分子,就将暂存区的所有内容提交至当前分支。
其实我们看这个图的话,他们之间的关系会更加清楚
简而言之,工作区、暂存区和版本库三者的联系就是你把已经修改的文件先从工作区添加至暂存区,然后再提交的版本库中。
三、git提交修改到远程仓库代码
1、git add . :将改动添加到暂存区
2、git commit -m "提交信息" git commit 命令用来将本地暂存的修改提交到版本库
-m参数是输入提交信息的
3、git push -u origin master 将代码修改推送到远程仓库的master分支