Git详细教程(1)---我的Git的基本使用

分布式版本控制系统--git

一. 什么是Git

1. Git是什么

Git是目前世界上最早进的分布式版本控制系统(没有之一)。css

实际上版本控制系统有以下几个:html

1) CVSgit

2)  SVNwindows

3) Gitbash

这个概念中有两个疑问:编辑器

1. 什么是版本控制分布式

2.什么是分布式?工具

2. 为何须要Git

你们熟悉的一个场景:论文学习

相似的场景,在软件开发中更为广泛。网站

分组完成项目的时候

1)多人协做,是如何完成的?

2)开发本身的任务的时候,从写第一行代码开始到整个结束,有没有来回修改?

 

如何来解决这些问题呢?

早期,在项目规模尚未那么大的时候,你们制定一些规则,手动解决就行。

随着软件和项目规模的增大,这种手动方式,效率过低,问题太多,不能知足开发的需求。

 

须要有相应的工具来解决 --- 因而就出现了 版本控制系统。

1)CVS,功能比较弱,如今不多使用

2)SVN,功能比较完善,使用比较多

3)Git,功能最强大的,也是最受欢迎的。

 

因此,版本控制能够帮助咱们实现两件事情:

1)自动记录每次的修改,而且能够方便的切换到任一版本

2)能够完成多人协做开发

3.GitGitHub有何区别

Git,是一个版本控制系统,其实是一个工具,大多数都是基于命令行的。

GitHub,是一个使用Git做为版本控制的托管代码的网站,平台

重点在于学习Git自己。

二.快速入门

1.安装Git

Git在多个操做系统均有相应的安装包。

使用windows系统。

仍是一个典型的windows软件的安装

官网:https://git-scm.com/downloads/

这个表示加入了windowspath变量,意味着能够在cmd窗口中使用。

安装完成以后,咱们能够在任意目录下,点击鼠标右键,弹出右键菜单,有两个选项:

1.Git GUI Here

2.Git bash Here

Git GUI here,其实就是一个可视化的界面,使用鼠标就能够完成相应操做。以下:

 

Git bash Here

命令行窗口

2.使用流程

基本的使用流程以下:

1)初始化一个Git仓库(git init

2)设置用户名和邮箱

3)添加文件到仓库(git add 文件名1 文件名2

4) 提交 git commit -m 说明文字)

5)查看版本 git log

6)回退 git reset --hard HEAD^/commit_id

 

(1).初始化一个Git仓库(git init

首先,须要指定咱们的项目目录,好比此处放在project目录下,

使用git init 来初始化一个Git仓库。

在当前目录下打开 git bash 窗口,输入git init命令,以下:

 

repository: 仓库

相应的,会在当前目录下,建立一个隐藏的.git目录,

咱们在开发的时候,是不能去动这个目录的。

以下:

 

 

(2). 设置用户名和邮箱

 

使用

git config user.name 用户名

git config  user.email 邮箱

(3). 添加文件到仓库(git add 文件名1 文件名2

 

咱们须要在project目录下,开始开发。

使用 git add 文件名,将其添加到版本库

 

 

(4). 提交 git commit -m 说明文字)

 

使用git add只是将其添加到git 的暂存区,须要使用git commit进行提交,同时必需要加上说明文字。

 

(5). 查看版本 git log

 

接下来,须要重复3~5

好比,我新建一个base.css文件,将其引入到 index.html中,因此,又须要add

 

再次commit

(6).回退 git reset --hard HEAD^/commit_id

第三天开发,发现须要回到第一个版本

使用 git reset --hard HEAD^会退到上一个版本。

 

 

我又后悔,须要再回到第二个版本。这是当前版本的将来版本,必须使用commit_idreset

 

回退以下:

此时,就已经切换到第二个版本。

三.Git基本概念及原理

1.基本概念

在使用git的时候,一般会提到以下几个术语:

1)工做区

2)版本库

3) 暂存区

4)分支

 

当咱们使用git init命令初始化仓库的时候,建立一个隐藏的目录---- .git

这个文件夹将咱们的项目目录一分为二:

1.版本库(仓库)

2.工做区

1)凡是在.git目录中的,都是属于版本库的

2)凡是在.git目录以外的,都是属于工做区的。

 

咱们的项目目录

一旦咱们建立了版本库,在开发的时候,就不能对版本库目录作任何的操做。

咱们开发的操做都是在工做区进行的,新建、修改、删除都是在工做区进行的。

也就是说,咱们的常规开发都是在工做区进行的。

对于工做区的内容,其实就是咱们常规的和项目相关的文件和文件夹。

对于版本库,还须要进一步的去看看里面有什么东西。

版本库,又一分为二:

1) 暂存区

2)主分支

暂存区:stage,临时保存文件的一个区域,就至关因而一个中转站。工做区中的任何内容都是须要经过暂存区,才能提交真正的分支上去。

主分支:master,它才是保存各个版本的地方

 

2.基本原理

理解Git的关键在于 暂存区 的理解。

前面咱们使用Git提交版本的时候,其实分红了两步:

1) 使用git add命令

2)使用git commit命令

实际上,咱们在将工做区的文件提交给版本库的时候,首先是将其添加到 暂存区,而后才是从暂存区再提交给主分支。

1)git add ,将文件添加到 版本库的 暂存区。

2)git commit ,将暂存区全部的文件一次性提交个 主分支。

咱们不能直接从工做区到 主分支,必需要通过暂存区。

 

 

结合命令再次来看看这个过程。

 

使用 git status 能够查看 git版本库的状态。

 

text项目目录下,新建一个版本库,目前工做区没有任何内容,以下:

 

使用 git status命令,查看 版本库的状态:

 

在工做区中,新建一个index.html文件,以下:

 

再次使用 git status查看,以下:

 

采纳它的建议,使用git add命令,将index.html添加到版本库的暂存区,以下:

 

再次查看状态,以下:

说明这个文件,已经被放入暂存区了。

使用git commit 将其从暂存区提交到 主分支,以下:

 

再次查看状态:

说明暂存区空了。

能够参考图示。

四. 基本操做

实际上,就是几个常见命令,包括以下几个:

1)git config

2)git init

3) git add

4)git commit

5)git status

6)git rese

Git能够完成两件事情:

1.版本控制

2.多人协做

此处,讨论都是针对我的的版本控制。

1.git config

用户获取/设置git的一些配置。

获取git的配置,使用 git config --list

 

咱们重点关注的就只有 用户名和邮箱的一个设置

git config user.name 用户名

git config user.email 邮箱名

若是须要设置全局的,能够加 --global

若是是第一次安装 gituser.name user.email是没有的,因此须要设置一下。

2.git init

用于初始化一个版本库。

能够用两种方式来初始化

1.先建立一个目录,在这个目录下,使用git init命令

2.直接使用 git init 项目名称,初始化

 

不论是哪一种方式,都会在 项目目录下,新建一个.git目录,该目录就是 版本库,这个目录是隐藏,也不容许用户进行任何的操做。须要对版本库进行操做,使用命令操做便可。

3.git add

做用:将文件从 工做区 添加到 版本库的 暂存区

格式:git add 文件名1 文件名2 文件3

此处,也能够添加文件夹。

查看状态,以下:

4.git commit

做用:将全部文件一次性从暂存区 提交给 主分支,才会造成一个版本。

格式:git commit -m 说明文字

 

一旦commit,就会将其提交个主分支,造成一个新的版本,同时会将暂存区清空。

在使用的时候,须要注意的一个问题  ---- 必需要添加说明文字。

添加说明文字有两种方式:

1)使用 -m 参数 (推荐)

2)进入vi编辑器,而后编辑

若是在git commit的时候,没有加上 -m ,就会进入vi编辑器,如图:

 

vi编辑器中,两种种模式:

1)输入模式,容许用户输入内容

2)命令模式,能够执行相关的一些命令

默认进来是一个命令模式,切换到输入模式,按下 i,就能够输入相应的说明文字。

按下ESC键,就退出输入模式,进入命令模式。

若是想保存退出,须要输入 wq

 

推荐你们使用-m参数来添加说明文字。

5.git status

做用:查看版本库的状态,重点就是暂存区。

格式:git status

重点就是 读懂不一样的状况下的说明信息:

 

6.git reset

做用:用于切换到某一个版本

格式:git reset --hard HEAD^ /commit_id

一旦咱们将项目造成多个版本,就可使用git reset切换到任意版本。

一般须要查看当前版本库的日志信息。使用git log来查看,以下:

如今就可使用git reset命令回退。

若是是会退到以前的版本,可使用HEAD关键字和commit_id。

HEAD^,回退到以前的一个版本

HEAD^^,回退到以前的两个版本

HEAD^^^,回退到以前的三个版本

若是大于3的话,HEAD^10

更好的方法就是使用 commit_id。

若是须要回退到当前版本的将来版本,必须使用commit_id。若是使用HEAD,会回退到更小的版本。

再回到将来版本时,要分两种状况:

我已经使用了git log查看过版本状况,直接拿到那个commit_id便可。

若是没有使用git log查看过版本,使用git reflog能够查看整个commit_id状况。

相关文章
相关标签/搜索