这是我参加"第四届青训营"笔记创作活动的第8天
1. Git工作流程及安装配置
1.1 工作流程
SVN是集中式版本控制的代表(现在过时了)。
Git是分布式的,不需要有中心服务器。
一些基本的Linux命令:
- ls/ll 查看当前目录
- cat 查看文件内容
- touch 创建文件
1.2 安装配置Git
1.安装
2.基本配置
-
打开Git Bash
-
设置用户信息
git config --global user.name 'yourname'git config --global user.email 'youremail'
-
查看配置信息
git config --global user.namegit config --global user.email
2. Git使用
git bash中选中会自动复制,按下鼠标滚轮则会自动粘贴,不要使用Ctrl+c/v来进行复制粘贴。
2.1 基础命令
- 创建文件
$ touch 文件名 - 查看状态
$ git status - 缓存跟踪
$ git add .(工作区——>暂存区) - 提交
$ git commit -m '注释'(暂存区——>本地仓库) - 查看日志
$ git log [options]
-
options
- --all 显示所有分支
- --pretty=oneline 将提交信息显示为一行
- --abbrev-commit 使得输出的commitId更简短
- --graph 以图的形式展示
-
版本回退
$git reset --hard commitID- commitID可以使用
git-log(精简形式查看)或者git log指令查看
- commitID可以使用
-
查看已经删除的记录
$ git reflog,这个指令可以查看已经删除的提交记录
2.2 常用指令(分支)
- 拉取分支上的代码
git clone -b 分支名 仓库地址 - 查看本地分支
git branch - 创建本地分支
git branch 分支名 - 切换分支
git checkout 分支名 - 创建并切换分支
git checkout -b 分支名 - 合并分支
git merge 分支名称
-
一般都是将其他的分支合并到master上
- 首先先切换到master分支上
- 然后在执行命令
git merge 想要合并的分支名称
- 删除分支
-
删除分支时,需要做各种检查
git branch -d 分支名
-
删除分支时,不做任何检查,强制删除
git branch -D 分支名
- 解决冲突
当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:
- 处理文件中冲突的地方
- 将解决完冲突的文件加入暂存区(add)
- 提交到仓库(commit)
2.3 分支使用流程
- master(生产)分支
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支 - develop(开发)分支
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要合并到master分支准备上线。 - feature/xxxx分支
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。 - hotfix/xxxx分支
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支, - 其他分支
例如test分支(用于代码测试)、pre分支(预上线分支)等等。
feature/xxxx分支要合并在develop分支上,一般合并之后要将feature/xxxx分支删掉,项目要上线的时候再将develop分支合并到master上,develop分支不能删哦!
2.4远程仓库操作
-
添加
git remote add origin 仓库地址 -
推送
git push origin master -
抓取
git fetch [remote name] [branch name]- 抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
- 如果不指定远端名称和分支名,则抓取所有分支
-
拉取
git pull [remote name] [branch name]- 拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
- 如果不指定远端名称和分支名,则抓取所有并更新当前分支
-
查看本地分支与远程分支的关联关系
git branch -vv -
克隆
git clone 仓库地址