Git初级操作指南
前言: “ git的使用是每个软件开发人员必备的技能,但很多git的初学者,都只是知道常用的一些命令写法,却不知道命令真正对应的作用是什么。网络上大部分git操作教程文章,都是直接罗列了一些常用命令,命令后面注释作用的描述。初学者看过文章之后,可能还是无法举一反三,碰到其他场景,仍然需要再去搜索应该使用什么命令操作。”
本文通过介绍git管理的目录结构,将git常用操作命令基于git结构通过图形的方式展现,让初学者对git操作对应的作用流向印象深刻,从而达到对于更加复杂的应用场景也能思路清晰。
目录
Git操作一般流程
初始化一个仓库
## 新建一个目录作为工作目录
$ mkdir git_test
$ cd git_test
## 在本地初始化git仓库
$ git init
获取远程仓库
## 把远程仓库clone下来
$ git clone git@github.com:xx/xxx.git
## 默认远程仓库名为origin
## 也可以添加远程仓库为origin
$ git remote add origin git@github.com:xx/xxx.git
## 合并远程仓库代码到本地
$ git pull origin master
提交代码
## 添加所有修改
$ git add .
## 提交修改
$ git commit -m "add some files"
## 推送到远程仓库
$ git push
在非常常规的单人开发情况下,或许知道以上命令已经够用了。但一般项目都是团队协作,而且可能有多个分支版本,碰到稍微复杂的场景,仅仅记住这些命令就显得不够了。
清楚地知道每个git操作对应的流程和作用才能应对更多的情况。首先,得要了解一下git的目录结构。
Git目录结构
在Git中,我们将需要进行版本控制的文件目录叫做一个仓库(repository),这个目录里面的所有文件都通过Git来实现版本管理,Git能跟踪并记录在该目录中发生的所有更新。
git管理的目录结构如下图所示:
根据上图,给出每个部分的简要说明:
- Directory:使用Git管理的一个目录,包含我们的工作空间和Git的管理空间。
- WorkSpace:需要通过Git进行版本控制的目录和文件 (也就是我们的项目代码),这些目录和文件组成了工作空间,除了.git之外的都属于工作区。
- .git:存放Git管理信息的目录,初始化仓库的时候自动创建。
- Index/Stage:暂存区,在提交进本地仓库之前,我们可以把所有的更新以内容快照的形式放在暂存区。
- Local Repo:本地仓库,一个存放在本地的版本库;指针HEAD会指向当前的开发分支(branch)。
- Stash:是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。
git命令基本就是围绕这些部分在进行操作,接下来对应着结构看看操作的流程走向。
git操作的流程
git提交流程
如上图,对应之前提到的git提交代码的操作命令: