Git

Git中大部分操作都是针对本地文件和本地数据库,只有在我们平时执行类似克隆(clone)、pull、push等命令时才与远程服务器交互。这样对于开发维护代码库就很安全,因为一旦远程服务器代码丢失仍然可以将本地代码上传到服务器;也会给开发者带来诸多方便,因为将远程代码取到本地后可以随意的修改,一旦修改混乱之后仍然可以恢复到以前版本,即使本地代码被误删除仍然可以重新从服务器取回代码。

Git是什么?

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. [译:Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。]

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git可以帮助我们管理代码,它是一个分布式版本控制系统。它设计了仓库(版本库)这样一种管理机制;同时,不同于SVN,CVS集中式的版本控制理念,Git是分布式版本控制。

两者的区别可以阅读廖雪峰老师的文章:集中式vs分布式

而且,Git是通过命令行操作的。

基本操作

这里只简单罗列几条命令,具体操作在下面通过Git创建本地仓库会介绍到。

  • git init:初始化仓库

  • git status:查看仓库状态

  • git add:向暂存区中添加文件

  • git commit:保存仓库的历史记录

  • git log:查看提交日志

  • git diff:查看更改前后的差别

  • git branch:显示分支一览表

  • git checkout -b:创建并切换分支

  • git checkout:切换分支

  • git merge:合并分支

  • git reset:回溯历史版本

  • git remote add:添加远程仓库

  • git push:推送至远程仓库

  • git clone:获取远程仓库

分支

在进行多个并行作业时,我们会用到分支。

master分支是Git默认创建的分支,它就像河流的主干,而我们根据需要,创建的一个个分支,就相当于河流分化出来的一个个小分流。

我们在分支上进行编程作业(例如,每个负责项目的一个模块开发),当完成之后,进行审核无误,再合并到主分支master上,这样就能合理高效地实现多人并行开发。

特性分支

特性分支,是集中实现单一特性(主题),除此之外不进行任何作业的分支。

在日常开发过程中,我们常常会创建数个特性分支,同时在保留一个随时可以发布软件的稳定分支。稳定分支的角色通常由master担当。

假设我们创建了一个feature-a分支,这一分支主要实现feature-a,除feature-a的实现之外不进行任何作业。即便在开发过程中发现了Bug,也需要再创建新的分支,在新分支中进行修正。