Git基本命令和GitFlow工作流
2015-09-28 09:21
309 查看
http://www.linuxidc.com/Linux/2015-01/111999.htm
本篇文章讲解了Git的一些基本的团队协作命令,和GitFlow工作流指南
2.切换到新分支
3.开分支和切换分支合并到一个命令
4.切换回原分支
5.合并分支
6.查看本地分支列表
7.查看远程分支列表
8.向远程提交本地新开的分支
9.删除远程分支
10.删除本地分支
11.更新分支列表信息
12.TortoiseGit(乌龟git)
Gitflow工作流定义了一个围绕项目发布的严格分支模型。虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架。
Gitflow工作流没有用超出功能分支工作流的概念和命令,而是为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互。除了使用功能分支,在做准备、维护和记录发布也使用各自的分支。当然你可以用上功能分支工作流所有的好处:Pull Requests、隔离实验性开发和更高效的协作。
剩下要说明的问题围绕着这2个分支的区别展开。
注意,从各种含义和目的上来看,功能分支加上develop分支就是功能分支工作流的用法。但Gitflow工作流没有在这里止步。
一旦develop分支上有了做一次发布(或者说快到了既定的发布日)的足够功能,就从develop分支上fork一个发布分支。新建的分支用于开始发布循环,所以从这个时间点开始之后新的功能不能再加到这个分支上 —— 这个分支只应该做Bug修复、文档生成和其它面向发布任务。一旦对外发布的工作都完成了,发布分支合并到master分支并分配一个版本号打好Tag。另外,这些从新建发布分支以来的做的修改要合并回develop分支。
使用一个用于发布准备的专门分支,使得一个团队可以在完善当前的发布版本的同时,另一个团队可以继续开发下个版本的功能。
这也打造定义良好的开发阶段(比如,可以很轻松地说,『这周我们要做准备发布版本4.0』,并且在仓库的目录结构中可以实际看到)。
GitHub 教程系列文章:
GitHub 使用教程图文详解 http://www.linuxidc.com/Linux/2014-09/106230.htm
Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm
Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm
Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm
Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm
Git 服务器搭建与客户端安装 http://www.linuxidc.com/Linux/2014-05/101830.htm
Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm
分享实用的GitHub 使用教程
http://www.linuxidc.com/Linux/2014-04/100556.htm
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-01/111999p2.htm
本篇文章讲解了Git的一些基本的团队协作命令,和GitFlow工作流指南
git 团队协作的一些命令
1.开分支git branch 新分支名 例如,在master分支下,新开一个开发分支: git branch dev
2.切换到新分支
git checkout 分支名 例如,在master分支下,切换到新开的dev: git checkout dev
3.开分支和切换分支合并到一个命令
git checkout -b 新分支名 例如,新开一个开发分支,并立即切换到该分支: git checkout -b dev
4.切换回原分支
git checkout 原分支名 例如,切换回master git checkout master 注意:当前分支有修改,还未commit的时候,会切换失败,应当先commit,但可以不用push
5.合并分支
git merge 需要合并的分支名 例如,刚刚已经切换回master,现在需要合并dev的内容: git merge dev 建议在GitLab(或者其他git系统)上面创建merge request的形式来进行分支的合并和代码审核。
6.查看本地分支列表
git branch -a 前面带remotes/origin 的,是远程分支
7.查看远程分支列表
git branch -r
8.向远程提交本地新开的分支
git push origin 新分支名 例如,刚刚在master下新开的dev分支: git push origin dev
9.删除远程分支
git push origin :远程分支名 例如,删除刚刚提交到远程的dev分支: git push origin :dev
10.删除本地分支
git branch 分支名称 -d 例如,在master分支下,删除新开的dev分支: git branch dev -d 注意:如果dev的更改,push到远程,在GitLab(或者其他git系统)上面进行了merge操作,但是本地master没有pull最新的代码,会删除不成功,可以先git pull origin master,或者强制删除 git branch dev -D
11.更新分支列表信息
git fetch -p
12.TortoiseGit(乌龟git)
不可否认,在windows下,这个是个不错的工具。不管你是命令行新手还是重度使用者,我觉得都可以尝试一下。
Git工作流指南:Gitflow工作流
在你开始阅读之前,请记住:流程应被视作为指导方针,而非“铁律”。我们只是想告诉你可能的做法。因此,如果有必要的话,你可以组合使用不同的流程Gitflow工作流定义了一个围绕项目发布的严格分支模型。虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架。
Gitflow工作流没有用超出功能分支工作流的概念和命令,而是为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互。除了使用功能分支,在做准备、维护和记录发布也使用各自的分支。当然你可以用上功能分支工作流所有的好处:Pull Requests、隔离实验性开发和更高效的协作。
工作方式
Gitflow工作流仍然用中央仓库作为所有开发者的交互中心。和其它的工作流一样,开发者在本地工作并push分支到要中央仓库中。历史分支
相对使用仅有的一个master分支,Gitflow工作流使用2个分支来记录项目的历史。master分支存储了正式发布的历史,而develop分支作为功能的集成分支。这样也方便master分支上的所有提交分配一个版本号。剩下要说明的问题围绕着这2个分支的区别展开。
功能分支
每个新功能位于一个自己的分支,这样可以push到中央仓库以备份和协作。但功能分支不是从master分支上拉出新分支,而是使用develop分支作为父分支。当新功能完成时,合并回develop分支。新功能提交应该从不直接与master分支交互。注意,从各种含义和目的上来看,功能分支加上develop分支就是功能分支工作流的用法。但Gitflow工作流没有在这里止步。
发布分支
一旦develop分支上有了做一次发布(或者说快到了既定的发布日)的足够功能,就从develop分支上fork一个发布分支。新建的分支用于开始发布循环,所以从这个时间点开始之后新的功能不能再加到这个分支上 —— 这个分支只应该做Bug修复、文档生成和其它面向发布任务。一旦对外发布的工作都完成了,发布分支合并到master分支并分配一个版本号打好Tag。另外,这些从新建发布分支以来的做的修改要合并回develop分支。
使用一个用于发布准备的专门分支,使得一个团队可以在完善当前的发布版本的同时,另一个团队可以继续开发下个版本的功能。
这也打造定义良好的开发阶段(比如,可以很轻松地说,『这周我们要做准备发布版本4.0』,并且在仓库的目录结构中可以实际看到)。
GitHub 教程系列文章:
GitHub 使用教程图文详解 http://www.linuxidc.com/Linux/2014-09/106230.htm
Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm
Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm
Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm
Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm
Git 服务器搭建与客户端安装 http://www.linuxidc.com/Linux/2014-05/101830.htm
Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm
分享实用的GitHub 使用教程
http://www.linuxidc.com/Linux/2014-04/100556.htm
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-01/111999p2.htm
相关文章推荐
- Android实战简易教程<三十>(实例解析Application的用法)
- Android实战简易教程<三十一>(基于加速度传感器的摇一摇功能实例)
- Android实战简易教程<三十二>(自定义View登录注册界面EditText-实现一键清空)
- No-args constructor for class does not exist. Register an InstanceCreator with G
- MMM(双主多从)+Amoeba 整合 MySQl读写分离集群架构
- 谷歌官方Gradle文档
- ubuntu 安装jdk
- Android实战简易教程<三十三>(自定义View实现控件晃动提示效果)
- Android实战简易教程<三十四>(基于ViewPager和FragmentPagerAdapter实现滑动通用Tab)
- 转:嵌入式软件工程师经典笔试题
- 如何为Apache JMeter开发插件(三)——冲破图片验证码的束缚
- codeforces 580D. Kefa and Dishes dp
- 1012. 数字分类 (20)
- Android实战简易教程<三十五>(将二维码扫描和生成Demo引入项目实例)
- Android实战简易教程<三十六>(监听短信-实现短信验证码自动填入)
- 焦点在文本框的最右边
- 专业实训题目需求分析
- 禁用网络适配器时出现“此时无法停用,这个链接可能在用一个或多个不支持即插即用的协议”
- oracle sql查询大全
- 用模式匹配解析 URL