最近和同事一起开发项目,项目不大,但是合并工程的时候由于没有采用好的版本管理工具,还是徒增了不少工作量。为了在以后的项目中避免这个问题,趁此机会好好学习了一下git,并作此记录。
在网上查阅了不少资料,觉得讲得最清楚也最适合入门的应该是廖雪峰老师的教程,浅显易懂,对工作中常用的需要掌握git技巧进行了讲解,需要入门的小伙伴可以仔细看一下这个教程,廖雪峰Git教程。本文主要记录git的几个关键概念。
工作区域
Git有四个工作区域,具体为:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)、git仓库(Remote Directory)。其中,前三个位于本地,即你当前工作的电脑,第四个git仓库为托管服务器,一般为远端。文件在四个区域之间的转换关系如下:
-
Workspace: 工作区,就是你平时存放项目代码的地方
-
Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
-
Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
-
Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交
git工作流程
从本地到远程仓库
由上图可知,从本地到远端一般有以下几个工作流程:
- 在工作目录中添加、修改文件;
- 将需要进行版本管理的文件放入暂存区域,使用git add 命令;
- 将暂存区域的文件提交到git仓库,使用 git commit 命令;
- 将本地仓库内容提交到远端,使用 git push 命令。
从远程仓库到本地
对应的,从远端到本地有以下几个工作流程:
- 将远程仓库内容克隆到本地仓库,使用git clone url地址;
- 将远程仓库的内容拉取到工作目录,使用 git pull,一般用在git push之前(在推送到远端之前需要先解决冲突)。