理解git的工作区、暂存区、本地仓库和远程仓库这4个概念,有助于帮助我们来更好的操作git的合并、提交及撤回等操作。
1、工作区(workspace),就是你平时存放项目源代码的文件夹。
2、暂存区(index / stage),用于临时存放你对源代码的改动,所谓的暂存区仅仅是.git目录下的一个index文件,这也是为了什么有的资料上称它为index。
3、本地仓库(repository),也叫版本库,将暂存区的文件commit的过程就叫做提交到版本库,注意这个时候实际代码还在本地硬盘。
4、远程仓库,托管代码的远程服务器,如github,g码云等,可以简单的认为将版本库内容与远程仓库内容做数据交换。
截取了个网络图片来加深理解这4个区域的操作过程:
4、远程仓库,托管代码的远程为将版本库内容与远程仓库内容做数据交换。
举个不太恰当的例子就是,你二大爷家的小哥日记本里夹了张美女图片,你很想要过来,但小哥说只能看不能碰,于是你想了办法,买了一捆A4纸和画纸,开始临摹这张图片,每天都在A4纸(workspace)上临摹练习,什么时候某个部位画的比较像了,在向画纸(index / stage)上同步的描上一点,整个鲜活的美女图片慢慢的就完全临摹到画纸上了,当最后一个大腿画完后,整张画纸上的图片相当于大功告成了(commit版本库),这时邻居家的二狗子也比较喜欢这副画,你又画了张一摸一样的画给他,这时他那也有了一份(push远程仓库)。