图是从别处引用的。该图很好的解析了git的5个分区之间的转换关系,下面简单描述自己的理解:
remote repository:远程仓库。存放在远程服务器(例如github)上的仓库,没有在本地。
origin(remote name):本地远程仓库。本地无法修改这个仓库,只能从远程服务器仓库通过网络进行更新。存在的意义是为了git向远程仓库push之前进行merge的参照物。git fetch更新这个区域。
local repository:本地仓库。本地代码提交后更新到这个区域,产生log等。
index:本地缓存区。本地修改代码后临时存储在这个区域,不会产生log。git commit后提交到本地仓库。
working directory:工作目录。本地修改代码的区域,git add后提交到缓存区。