git----工作流程

参考:https://www.funtl.com/zh/git/Git-%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%AE%80%E4%BB%8B.html

1、集中式工作流

 

1.1示例:

1.1.1有人先初始化好中央仓库

在github上建立一个统一的仓库

1.1.2所有人克隆中央仓库

 

1.2.3小明开发功能

在本地git中创建文件

1.2.4小红开发功能

在本地git中创建文件

1.2.5小明发布功能

git add 文件名

git commit -m “描述”

git push origin master

1.2.6小红发布功能

如果小红像小明一样直接push会报错,这避免了小红覆写正式的提交。她要先 pull 小明的更新到她的本地仓库合并上她的本地修改后,再重试。如果远程的仓库和本地的仓库文件一样,git push 就会直接成功;

git pull origin maste    (如果你本地有的目录(应该是自己新建的目录)和远程仓库的目录名字,或者文件名字一样,此时会被覆盖写入),个人感觉,在自己pull之间,最好将本地的代码单独保存一份

git push origin master  (好像不需要再add 和commit了,因为之前已经提交了(add/commit),现在只需要推送,如果之前没有add,还是需要先add。commit)

最好每一个个体独立创建一个分支。如果有大的合并的话,在单独合并的master中

 

2、功能分支工作流

2.1示例

2.1.1小红开始开发登录功能

首先创建分支
  创建分支:                            $ git branch 分支名
  查看所有的分支:                 $ git branch
  切换分支:                            $ git checkout 分支名
  推送代码到远程仓库              $ git push origin login(分支名)  //此时远程仓库会自动生成一个login分支。并且里面有我们推送的代码

当login(登录功能开发完毕),之后请求和主分支进行合并,合并完成后

如果需要将远程的分支删除

git push origin --delete login

如果需要将本地的分支删除

git branch -D  login

 

3.GitFlow 工作流

3.1示例

3.1.1

  第一步为 master 分支配套一个 develop(开发) 分支,所有的功能合并到develop上。简单来做可以本地创建一个空的 develop 分支,push 到服务器上:(一班的话开发组长将这一步完成)

3.1.2.

  小明(已经clone master分支了)

  git branch -a,查看所有分支名称如下(包含远程分支)

  git checkout -b develop origin/develop,作用是checkout远程的dev分支,在本地起名为develop分支,并切换到本地的develop分支,此时远程的develop和本地的develop才会绑定关系,(origin/develop是远程分支)

3.1.3

  基于develop创建新的分支(注意不能是master)

  git checkout -b register  (创建register分支)

  开发功能

  git push origin register (push到远程仓库,远程仓库会创建register分支)

  功能开发完成,创建合并请求

                  1.

  

     2.

 

 

         3.等待组长确认合并

 3.1.4

  当一个阶段开发完毕,准备创建预发布版本(基于develop)

  git pull origin develop    //拉取所有的develop代码

  git checkout -b  release-1.0.0   //创建预发布分支(基于develop分支创建)

  git push origin release-1.0.0    //将代码推上远程仓库

  完成测试之后

  合并请求,由release-1.0.0合并到master(合并方式见之前的合并方式,合并的base选择为master)

3.1.5

  git tag 1.0.0-RELEASE     //给master版本打上标签

  git push origin 1.0.0-RELEASE   //将这个标签推向远程仓库

 

  

 3.1.6

  如果发现项目出现问题,可以提交问题说明

  

 

3.1.7

  对项目进行打补丁

  git  fetch   //将本地分支与远程保持同步

  git branch <new-branch-name> <tag-name>   // 会根据tag创建新的分支   示例:git branch hotfix_0004 1.0.0-RELEASE    _0004代表补丁编号  

  完善bug之后

  git pull origin hotfix_0004  // 推送到仓库中

  将hotfix_0004合并到master中

  切换master分支 ,将master中的代码拉取下来

  git tag 1.0.1-RELEASE     //给master版本打上标签

  git push origin 1.0.1-RELEASE   //将这个标签推向远程仓库

 3.1.8

  将一些没用的仓库清空

 
 
 
 
 
 
 

 

posted @ 2019-06-09 16:36  小名的同学  阅读(205)  评论(0编辑  收藏  举报