一、基本配置
(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分支:预上线分支......
......