您的位置:首页 > 其它

Git基本命令和GitFlow工作流

2015-09-28 09:21 309 查看
http://www.linuxidc.com/Linux/2015-01/111999.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: