Skip to content
章节导航

组长

0. 克隆项目

bash
git clone git@github.com:ifer-itcast/hmmm-frontend.git # 运行项目请参考`项目环境`
# git clone https://gitee.com/zhoushugang/hmmm-frontend-dev.git

1. 变成自己的本地仓库

bash
rm -rf .git # 删除项目中的 `.git` 文件夹
git init # 初始化仓库
git add . # 添加暂存区 
git commit -m 项目初始化 # 提交本地仓库
git remote add origin https://gitee.com/ifercarly/hmm-front.git # 添加远程仓库地址
git push -u origin master # 推送到远端,第一次推送到 master 写完整,后续再推送到 master 只需要 git push 就行啦
git branch release # 基于 master 分支创建 release 分支,测试分支
git branch # 查看所有分支
git branch develop # 基于 master 分支创建 develop 分支,开发分支,一般组员在自己的分支把代码完毕后,都要合到这个分支上面

2. 新建远程仓库并拉小组成员

bash
Settings -> Manage access -> 输入小伙伴 GitHub 账号并确认 -> 小伙伴会收到通知,点击确认(如出现404,把这个地址粘贴到已登录 GitHub 的浏览器)

3. 推送所有分支到远程仓库

bash
git remote add origin git@github.com:ifer-itcast/test.git
# 推送 master 分支
git push -u origin master
# 推送 release 分支
git push origin release
# 推送 develop 分支
git push origin develop

组员

0. 克隆项目所有分支

bash
# 注意是 https:// 的地址
git clone https://github.com/ifer-itcast/test.git(组长的地址)

# 可以是 git fetch 远端地址 远端分支:本地分支
# git fetch https://github.com/ifer-itcast/test.git release:release
git checkout release # 如果说本地有,就切换到本地的 release,如果没有就去远端拉取 release 并切换

# git fetch https://github.com/ifer-itcast/test.git develop:develop
git checkout develop

1. 创建 任务分支

bash
# 切换到 develop 分支
git checkout develop # 如果本地有 develop 分支,就直接切换,如果本地没有,会去远端把 develop 拉过来并切换到 develop
# 例如创建基础题库分支,规范(feature/功能)
git checkout -b feature/questions

其他举例

bash
feature/questions # 基础题库
feature/questions-choice # 精选题库
feature/questions-new # 试题录入
feature/randoms # 题组列表
feature/subjects # 学科管理
feature/directorys # 目录管理
feature/tags # 标签管理
feature/articles # 面试技巧

2. 当你开发完成一个小功能/步骤需要提交代码

bash
# 添加到暂存
git add .
# 提交本地仓库,无需推送!
git commit -m '备注'

3. 开发完毕

当你确认你的任务功能开发完毕后,合并到develop分支然后推送到远程

bash
# 切换到develop分支
git checkout develop
# 注意!!!!拉取最新develop分支(没有配置origin直接使用仓库地址)
git pull origin develop
# 合并自己的任务分支   例如(featrue/questions)基础题库
git merge feature/questions
git pull  //在拉 防止冲突
# 推送develop分支 (没有配置origin直接使用仓库地址)
git push origin develop

切换到了 develop,拉取了远端代码,合并了自己分支的代码,此时还需要再次开发新功能,建议直接基于 develop 重新创建一个新分支

假如张三又想开发一个新功能

bash
# 保证目前处于 develop
git checkout -b feature/questionAdd
# 写代码....
git add .
git commit -m 又开发完啦
# 自己的分支没有必要 push 到远端
git checkout develop
# 注意!!!!拉取最新 develop 分支的代码
git pull origin develop
# 再合并
git merge feature/questionAdd

<font color=e32d40>注意:checkout 切换分支之前要保证当前分支是干净的!</font>

测试

0. 拉取远程 develop 分支到本地进行测试

==合并的操作由组长进行==

bash
# 先保证自己处于 develop
git checkout develop
# 拉取最新的develop分支到本地
git pull origin develop
# 合并到release分支
git checkout release
git merge develop
# 推送合并完成的release分支到远程仓库
git push origin release

1. 其他组员也可以拉取 release 代码到本地进行测试

2. 创建修改 Bug 的分支

bash
# 先保证自己处于 release
git checkout release
# 再拉取最新的 release 分支
git pull origin release
# 创建修改 bug 的分支,规范(hotfix/questions)
git checkout -b hotfix/questions

3. 进行修复

bash
# 添加暂存
git add .
# 提交本地,无需推送!
git commit -m '修改基础题库bug-分页错误'
# 合并分支
git checkout release
# 拉取最新release分支
git pull origin release
git merge hotfix/questions
# 推送release分支
git push origin release

4. 测试完毕

==合并 master 的操作由组长进行==

bash
# 拉取最新的 develop 分支到本地
git pull origin release
# 合并到 release 分支
git checkout master
git merge release
# 推送合并完成的 release 分支到远程仓库
git push
# 有的公司,有自动化构建平台,这个平台/工具能自动拉去 master 的代码,自动打包发布
npm run build # 生成一个 dist 目录,把这个发给我

问题

如何解决冲突?

代码开发一半,想切换分支,又不想提交怎么办?git stash 暂存 git stash apply 应用最新的暂存