Git常规使用方法

Git常规使用方法:
版本控制利器 Git,提升开发效率

角色权限

角色 权限 备注
Owner 项目所有者,拥有所有的操作权限 最高权限
Master 项目的管理者,除更改、删除项目元信息外其它操作均可 负责master等受保护分支的merge工作等
Developer 项目的开发人员,做一些开发工作,对受保护内容无权限 可以创建远程分支,创建merge请求, 接受merge请求?
Reporter 项目的报告者,只有项目的读权限,可以创建代码片断 不能创建远程分支, 创建merge请求?
Guest 项目的游客,只能提交问题和评论内容 只能issue等

具体请看官方文档:https://docs.gitlab.com/ee/user/permissions.html


分支定义

分支名称 定义 人员 环境 保护分支 稳定分支
master 主分支 顶级负责人Master 生产环境
r-预发布版本号 预发布分支 顶级负责人Master 预发布环境
dev 开发分支 项目负责人Master 测试环境
b-BUG编号 Bug修复分支 开发者Developer 测试环境
f-特性名称 特性分支 开发者Developer 开发环境
f-特性名称-coder 特性分支-开发者 开发者Developer 开发环境
t-发布版本号 发布版本标签 all all

一般使用方法

1. 克隆

git clone <仓库地址>

2. 查看所有分支

1
2
3
4
git branch -a
# 查看是否有origin/dev分支,服务器默认已建立dev分支,如果没有,则请Master角色先建立该分支:
# 方法1:clone版本哭,新建本地dev分支并push到服务器:git clone ; git branch dev ; git checkout dev ; git push。
# 方法2:直接在gilab上建立dev分支

3. 切换到dev分支

1
git checkout dev    #--- 可能是git checkout -b dev origin/dev,建立进入分支,并关联

4. 基于dev分支创建自己的分支<分支名称>

1
2
git checkout dev
git branch <分支名称>

5. 切换到<分支名称>,然后愉快的coding

1
git checkout  <分支名称>

yuan

6. 加到暂存区

1
git add ./

7. 可随时检查工作区状态

1
2
3
4
# 查看当前分支工作区是否有未跟踪的文件(即是否有未添加到暂存区的文件)
git status
# 查看当前分支工作区的文件与暂存区文件的差异
git diff

8. 提交到本地仓库

1
git commit -m "说明"

9. 推送到服务器仓库

也可以不推送到服务器,只放在本地仓库,例如仅本人使用的临时分支

1
2
git push --set-upstream origin <分支名称>     #--- 设置关联,也会顺便推送,仅在第一次时用
git push origin

10. 合并到dev分支(例)

A. Developer在网页上请求合并(推荐)

网页上请求合并还可以顺便进行代码审查,里程碑设置等
参考:
gitlab如何实现代码评审机制(通过角色管理控制): http://www.jianshu.com/p/adb598c52e84


如果出现冲突,开发人员将服务器最新的版本pull下来,然后将dev分支合并到自己的分支

1
2
3
git pull
git checkout <分支名称>
git merge --no-ff dev

如果有冲突,则参照上面的参考链接解决,或直接按【B. Master角色直接本地合并】中的方法解决

B. Master角色直接本地合并

dev是保护分支,只有Master角色(例,看设置的分支保护权限)才有权限进行合并
将本地分支<分支名称>合并到本地dev分支,必须先从服务器pull最新代码,并切换到dev分支,然后再合并:

1
2
3
git pull  <仓库地址>
git checkout dev
git merge --no-ff <分支名称>

运行merge命令之后,如果有冲突,则需要手动解决冲突,打开冲突文件,你可以看到类似:

1
2
3
4
5
6
7
8
9
。。。
111
<<<<<<< HEAD
222 master do it
=======
222 source do it
333 source jjj
>>>>>>> <分支名称>
。。。

将正确的留下,错误的删除即可,保存退出,然后重新(git add . ; git commit ; git merge ):

1
2
3
git add .
git commit -m "for merge说明"
git merge --no-ff <分支名称>

冲突时,也可以撤销合并:

1
git merge --abort

11. 删除分支,切换到master分支然后删除<分支名称>分支(不能删除当前分支)

1
2
git checkout master
git branch -d <分支名称>

12. 删除远程,危险,切记只删除自己建立的分支,不要删除公共分支,例如dev、release等

1
git push origin :<分支名称>
文章目录
  1. 1. 角色权限
  2. 2. 分支定义
  3. 3. 一般使用方法
    1. 3.1. 1. 克隆
    2. 3.2. 2. 查看所有分支
    3. 3.3. 3. 切换到dev分支
    4. 3.4. 4. 基于dev分支创建自己的分支<分支名称>
    5. 3.5. 5. 切换到<分支名称>,然后愉快的coding
    6. 3.6. 6. 加到暂存区
    7. 3.7. 7. 可随时检查工作区状态
    8. 3.8. 8. 提交到本地仓库
    9. 3.9. 9. 推送到服务器仓库
    10. 3.10. 10. 合并到dev分支(例)
      1. 3.10.1. A. Developer在网页上请求合并(推荐)
      2. 3.10.2. B. Master角色直接本地合并
    11. 3.11. 11. 删除分支,切换到master分支然后删除<分支名称>分支(不能删除当前分支)
    12. 3.12. 12. 删除远程,危险,切记只删除自己建立的分支,不要删除公共分支,例如dev、release等
,