一、基本配置

(1)打开Git Bash

(2)配置姓名和邮箱

git config --global user.name "Your Name"git config --global user.email "Your email"

因为Git是分布式版本控制工具,所以每个用户都需要有自己的名字和邮箱。

–global参数,表示该分支上的所有Git仓库都使用这个配置。

(3)查看配置信息

# 查看已有配置信息git config --list# 单独查看某项配置信息git config user.name……

二、基础操作指令

0.工作流程&状态变化图

(1)clone(克隆):从远程仓库中克隆代码到本地仓库;

(2)checkout(检出):从本地仓库中检出一个仓库分支,然后进行修订;

(3)add(添加):将代码从工作区添加到暂存区;

(4)commit(提交):将代码提交到本地仓库;本地仓库保存修改的各个历史版本;

(5)fetch(抓取):从远程仓库抓取到本地仓库,不进行任何的合并操作;

(6)pull(拉取):从远程仓库拉到本地仓库,自动进行合并(merge),然后放到工作区,相当于fetch+merge;

(7)push(推送):修改完成后,需要与团队成员共享代码时,将代码推送到远程仓库。

1.查看修改状态(status)

(1)作用:查看文件修改状态

(2)命令形式:git status

2.添加工作区到暂存区(add)

(1)作用:添加工作区中一个或多个文件的修改到到暂存区

(2)命令形式:git add 单个文件名或通配符

3.提交暂存区到本地仓库(commit)

(1)作用:将暂存区内容提交到本地仓库的当前分支

(2)命令形式:git commit -m “备注信息”

4.查看提交日志(log)

(1)作用:查看提交记录

(2)命令形式:git log [option]

–all:显示所有分支

–pretty=online:将提交信息显示为一行

–abbrev-commit:使输出记录更加简短

–graph:以图的形式显示

5.版本回退

(1)作用:版本切换

(2)命令形式:git reset –hard commit_Id

注:commit_Id可以使用git-log或git log指令查看

(3)如何查看已删除的记录?

git reflog:可以看到已经删除的提交记录

6. 添加文件至忽略列表

(1)作用:将不需要被git管理的文件自动忽略

(2)方法:创建.gitignore文件,在文件中写入需要被忽略的文件

7.自定义命令别名

(1)在电脑用户目录下创建“.bashrc”文件

(2)在文件中自定义别名,格式如下:

alias 自定义命令名=’原始命令’

三、分支常用指令

1. 查看分支

命令:git branch

2.创建本地分支

命令:git branch 分支名

3.切换分支

命令:git checkout 分支名

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

4.合并分支

命令:git merge 分支名

作用:将其他分支上的提交,合并到当前分支上

5.删除分支

命令:git branch -d/D 分支名

-d:删除分支时,需要做各种检查

-D:不做任何检查,强制删除

注意:不能删除当前分支,只能删除其他分支。

6.分支合并冲突解决

两个分支上对同一个文件的修改可能存在冲突,比如他们同时修改了同一行,这时在合并时就会导致冲突发生,需要手动解决:

(1)找到文件中冲突的位置;

(2)将冲突内容修改为我们希望合并后的样子;

修改为我们希望合并后的样子:

(3)将解决完冲突后的文件加入暂存区;

(4)提交文件到仓库;

四、分支使用原则与流程

几乎所有的版本控制系统都以某种形式支持分支,使用分支可以让我们把自己的工作从开发主线上分离开来,进行bug修复、新功能开发等,避免影响开发主线。

在开发中,一般有如下分支使用原则和流程:

(1)master(生产)分支:线上分支、主分支,中小规模项目作为线上运行的应用对应的分支。

(2)develop(开发)分支:从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本中进行开发,阶段开发完毕后,需要合并到master分支中准备上线。

(3)feature/xxxx分支:从develop创建的分支,一般用于同期并行开发,但不同期上线时创建的分支,该分支上的研发任务完成后合并到develop分支。

(4)hotfix/xxxx分支:从master上派生的分支,一般用于线上bug修复,修复完成后合并到master、test、develop分支。

(5)test分支:用于代码测试……

(6)pre分支:预上线分支……

……