一:Ditflow工作流:
二:流程演示:
2.1:模拟项目经理
- 1:创建master/develop分支
- 2:部署项目到远程仓库
- 3:设置角色权限
- 4:审批合并请求
- 5:合并测试分支到主分支
账号:jingli
密码:12345678
2.1.1:项目经理创建远程仓库:
1:创建一个分组:
2: 在组中创建一个项目:
2.1.2:项目经理创建本地仓库
1:在windows桌面的py_code文件夹中创建一个文件夹gitdemo右击gitdemo,选择Git Bash Here,然后输入git init
, 初始化本地仓库:
2:用pycharm打开gitdemo文件夹, 创建一个main.py的文件,如果出现弹窗,点击cancle。
3:编写代码和创建忽略文件:
4:将增加的代码添加到暂存区:先点击文件,然后选择VCS,然后Git, 然后Add。
5:将暂存区的文件提交到本地仓库:VCS ---->commit
2.1.3:项目经理创建开发分支,提交到远程仓库:
- git branch :查看分支
- git checkout -b 分支名:创建并且切换到分支。
- git checkout 分支名:切换分支
1:创建开发分支:
2:项目经理,让本地仓库和远程仓库关联,然后推送到远程:
2.1.3:项目经理管理权限:
1:找到管理权限的位置:
2:进行权限设置:
2.1.3:项目经理将人员添加到组中:
1:创建另一个账号模拟程序员:
2: 将这个用户添加到组中来:
2.1.4:项目经理将合并分支:
2.2:模拟程序员:
2.2.1:程序员将代码拉取到本地文件:
1:选择一个文件夹,在windows中使用GitBush打开。
2:使用git clone克隆。
2.2.2:程序员创建本地分支,提交到远程:
1:进入项目文件,创建本地的开发分支,关联远程开发分支。
2:创建自己的功能分支,然后在分支上编写自己的代码:
3:将自己代码推送到远程:
在自己的分支上
git add .
git commit -m “再次提交”
git push
git push --set-upstream origin f_login
2.2.3:程序员将自己代码合并到开发分支:
三:冲突处理:
冲突描述:
A程序员修改了公共文件中的代码,然后提交到远程了,然后项目经理合并了,B程序员不知道A程序员已经修改了,自己也没有拉取最新的代码,然后也修改了公共文件,然后合并到开发分支,项目经理发现冲突,取消B程序员的合并请求。B程序员要拉取最新的代码,查看冲突并解决冲突。
3.1:程序员A拉取最新代码,然后修改公共文件,然后请求合并。
3.2:项目经理合并程序员A的代码。
3.3:程序员B也修改了公共文件,请求合并。
3.4: 项目经理关闭B的合并请求。
3.5:程序员B解决冲突:
- 拉取远程的分支: git pull origin dev
- 如果都保存,去掉<<<和>>>
- 再次提交到远程。
四:命令总结:
项目经理:
# 切换分⽀
git checkout 分⽀名称
# 查看分⽀
git branch
# 创建并且切换分⽀
git checkout -b 分⽀名称
# 本地新建仓库
git init
git add .
# 添加到本地仓库
git commit -m 'message'
# 新建本地develop
git checkout -b develop
# 远程创建仓库创建项⽬将程序员拉到组⾥⾯
操作: 在gitlab服务器上在开发组中创建项⽬(远程仓库)
# 关联本地项⽬和远程仓库
git remote add origin 远程仓库地址
# 将本地所有的分⽀推送到远程-同名分⽀
git push -u origin --all
# 将本地标签推送到远程
git push -u origin --tags
开发者:
# 克隆远程仓库的代码
git clone 远程仓库地址
# 创建develop并且切换到该分⽀,最后关联到远程的develop
git checkout -b develop origin/develop
# 从develop克隆出功能分⽀f_detail
git checkout -b f_detail
# 在功能分⽀上开发代码
# 当前的f_detail推送到远程f_detail[⾃动新建]
git add .
git commit
git push
操作: 发起合并请求