gitlab 多人协同工作

Gitlab多人协同工作 Master & Developer目录
 开发前准备
 开发中过程
 Developer操作说明
 Master操作说明
 附录(Gitlab基本操作)开发前准备开发前准备
Gitlab多人协同工作,所有开发者会被添加进一个共同的工作组。协同工
作开始前,群组管理员及开发者都有一些准备工作要做。
群组管理员(Master):
1 -在Gitlab上创建群组
2 -为群组添加成员并赋予权限
3 -为群组新建项目
4 -为群组项目创建分支
开发者(Developer):
1.去Gitlab注册个人账号并添加个人SSH Key(参照本PPT附录)
2.请群组管理员将你的账号添加进open-source群组开发中过程开发中过程
日常开发中开发者与群组管理员的分工。
开发者(Developer):
1. 克隆远程仓库到本地(只在第一次做一次)
2. 获取远程最新版本并merge到本地
3. 切换到自己的分支
4. 在自己的分支上写代码并提交
5. 将自己分支的更新push到远程
6. 在Gitlab上发起请求,请求合并自己的分支到远程的master分支
群组管理员(Master):
1. 管理员收到合并请求,审查代码并决定是否通过合并请求Developer开发者Workflow
Gitlab建议的协同工作流开发者Workflow
①克隆管理员创建好的项目到本地
②切换到自己的分支
③在自己的分支上写代码并提交
④push到远程服务器(分支是自己
的分支)开发者Workflow
⑤在commit页面上浏览分支
Projects -> 项目名称-> Repository -> Commits -> 选择自己的分支,点击单个链接可以看到更新的具体内容。开发者Workflow
点击Merge Requests -> New Merge Request,在New Merge Request页面选择自己要合并的分支和要并入的分支
(master),点击Compare branches and continue继续。
下拉选择自己的分支 被合并的分支,master
⑥在Gitlab页面创建一个合并请求开发者Workflow
开发者操作总结:
1. 克隆管理员创建好的项目到自己本地
2. 切换到自己的分支(分支由管理员创建)
3. 在自己的分支上写代码,并提交
4. 推送到远程服务器,分支是自己的分支
5. 在commit页面上浏览分支
6. 创建一个合并请求
其中:远程仓库由管理员创建,开发者使用的分支也由管理员事先创建。开发者在Gitlab页面上创建了合并请求
之后,由管理员审查代码并最终通过合并请求,完成分支到主分支的合并。MasterMaster – 创建群组
左侧菜单Project -> Groups -> New Group,填入群组名称和描述,选择权限选项点击Create group提交。
写入Group名称
写入Group描述
群组和群组下的Projects仅对群内部成员可见
Gitlab登录用户均可见
所有人都可见,没有任何权限管控Master - 添加群组成员
左侧菜单Group -> 单击群组名称-> Members进入该群组成员管理页面,按照指引添加成员
从下拉菜单选择要添加的用户
设定权限 过期时间,不写为永久有效
开发人员的权限级别,由低到高依次是
Guest,Reporter,Developer,Maste。一般
给需要提交代码的开发者权限为DeveloperMaster - 新建群组项目
单击左边菜单栏,选择Group -> 单击群组名称-> New Project,按照指引新建项目。Master – 为群组项目创建分支
进入Project页面,在SSH地址栏右边点+,下拉菜单中选择New branch,创建新的分支。
写入Group名称Master – 为群组项目创建分支
进入Project页面,在SSH地址栏右边点+,下拉菜单中选择New branch,创建新的分支。
分支的命名规则使用小驼峰式命名法,具体为开发
人员工号+所开发的功能/要解决的BUG名,工号首
字母小写。命名中不要使用特殊字符,不要使用点。
分支命名:
f1322817Feature1
f1322817Bug051Master – 合并分支
管理员收到合并请求,审查代码并决定是否通过合并请求。点击Accept Merge Request通过,代码完成合并。附录
Gitlab基本操作1.用户注册
按要求填写完所有项目之后单击Register提交。2.添加个人SSH KEY
在自己电脑上新开Git Bash窗口,用命令ssh-keygen.exe –t rsa生成SSH公钥。在隐形文件夹.ssh下生成的id_rsa.pub
即为SSH公钥文件。2.添加个人SSH KEY
单击用户头像,选择Settings。2.添加个人SSH KEY
复制公钥文件内容,贴到Key的框框中,
点击Add Key.
复制过程中不能有换行。
一个公钥(一台主机)只能被一个用
户使用。
单击SSH Keys切换到SSH Keys配置页面。复制刚才本地生成的公钥文件内容,贴到Key的框框中,点击Add Key添加。2.添加个人SSH KEY
至此,个人SSH KEY添加完成。3.新建project
单击左边菜单栏,选择Projects -> New Project3.新建project
写入项目名称,和项目描述,点击Create project。
Visibility Level根据实际需要选择。3.新建project
Project创建完成之后,会产生一个以project.git命名的仓库。剩下就是用git上传下载代码,管理自己的项目。4.导入项目
在本地主机并设置下git的用户名和邮箱。
③查看当前git配置
①设置用户名
②设置邮箱4.导入项目
如果项目在本地已经存在,需要导入到gitlab,可以通过命令直接将项目导入上去。
⑤提交
①进入项目文件夹
②初始化git仓库
③添加远程仓库
④将项目文件存进暂存区
⑥将更新推送到远程git仓库4.导入项目
如果本地没有项目仓库,可以从gitlab上把项目克隆下来。
①克隆远程仓库到本地电脑
②进入项目文件夹
③查看项目文件目录4.导入项目
如果已经拉取过远程仓库,每次在本地编辑代码之前,应该从远程获取最新版本并merge到本地。5.分支(branch)操作
查看分支:git branch
①查看本地分支
②查看远程分支5.分支(branch)操作
创建本地分支并切换到分支:git branch [name] , git checkout [name]
①创建本地分支
②切换分支
③创建新分支并立即切换到新分支,
等同于上面两条命令5.分支(branch)操作
删除本地分支:git branch -d [name]。注意删除分支时该分支不能存在还未合并的代码。
①删除本地分支5.分支(branch)操作
创建远程分支:(创建本地分支,并push到远程)git push origin [name]
①将本地分支push到远程5.分支(branch)操作
删除远程分支:git push origin :[name]
①删除远程分支
把本地某个分支提交到远程仓库,并作为远程仓库的分支,完整命令是:git push origin [name]:[name]。
删除远程分支的命令其实就是让左边的分支为空,其作用是删除远程的分支。但是该分支在本地还是会保存的。5.分支(branch)操作
合并分支:git merge [name]
③提交修改
①切换到f1322817Feature2分支
②修改一个/多个文件
④切换回master分支
⑤合并f1322817Feature2的修改到master分支6.子模块(submodule)操作
添加子模块:git submodule add [url][path]
①添加子模块6.子模块(submodule)操作
初始化子模块:git submodule init
①初始化子模块,只需要在首次拉取的时候运行一次。6.子模块(submodule)操作
更新子模块:git submodule update
①更新子模块,每次更新或切换分支后都需要运行一下。
submodule项目和它的父项目本质上是2个独立的git仓库。只是父项目储存了它依赖的submodule项目的版本号而
已。如果同组的同事更新了submodule,然后更新了父项目中依赖的版本号,你需要在git pull之后,调用git
submodule update来更新submodule的信息。6.子模块(submodule)操作
删除子模块,有4个步骤
①git rm -cached 子模块
②编辑.gitmodules,将子模块相关配置节点删除
③编辑.git/config,将子模块相关配置节点删除
④手动删除子模块残留的目录6.子模块(submodule)操作 - 子模块实例
场景:本地已有ST项目的仓库,从远程拉取COMMON作为ST项目的子模块,更新子模块并push到远程。
①在ST项目文件夹下切换到自己的分支
②添加子模块
③查看git状态,此时ST项目文件夹下
多了两个文件/文件夹6.子模块(submodule)操作 - 子模块实例
场景:本地已有ST项目的仓库,从远程拉取COMMON作为ST项目的子模块,更新子模块并push到远程仓库。
④进入子模块文件夹
⑤切换到子模块下自己的分支
⑦查看修改后的状态
⑧提交修改
⑥修改子模块的文件6.子模块(submodule)操作 - 子模块实例
场景:本地已有ST项目的仓库,从远程拉取COMMON作为ST项目的子模块,更新子模块并push到远程仓库。
⑨push修改到远程自己的分支
之后的操作就是去Gitlab网页上发起合并分支申请,等待管理员合并子模块的代码去master分支了。
特别注意:
在主项目(ST)和子模块(COMMON)之间切换目录的时候,切换目录的同时特别要注意切换自己的分支,否
则所有的操作都跟自己的用户无关,最后的修改无效无法提交。6.子模块(submodule)操作
使用submodule注意事项:
1.对submodule做修改操作前,确保切换到正确的submodule项
目分支。因为进入submodule文件夹,分支状态还保留在父项
目的分支下。对submodule做修改前,要立即切换到
submodule下你的本地分支。
2.git pull 之后,立即执行git status,如果发现submodule有修改,
立即执行git submodule update。
3.尽量不要使用git commit -a,git add存在的意义就是让你对加
入缓存区的文件做第二次确认,而git commit -a相当于跳过了
这个确认过程。7.忽略的文件/文件夹
无须纳入Git管理的文件(通常都是些自动生成的文件,日志文件/临时文件等),可以通过创建一个名
为.gitignore的文件来管理。Git官方文档(中文)
https://git-scm.com/book/zh/v2The End
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lm_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值