团队开发项目时的git操作
团队协作开发中,大部分都会用到版本控制软件,比如Git,Svn等.平时自己在写项目的时候,最后会把自己的代码push到github上,因为是个人开发,所以经常用的就是add,commit,push,还有建仓库的那几个命令.但是在开始和其他组合作开发项目之后,就要开始学习更正规的git操作了,下面是我刚入门的一些总结
分支
在一个项目仓库刚被创建的时候,我们处于默认的master分支,上图描述了一个项目在版本更新的时候会用到的分支,下面介绍一下各个分支.
-
1.master分支,即主分支。任何项目都必须有个这个分支。对项目进行tag或发布版本等操作,都必须在该分支上进行。
-
2.develop分支,即开发分支,从master分支上检出。团队成员一般不会直接更改该分支,而是分别从该分支检出自己的feature分支,开发完成后将feature分支上的改动merge回develop分支。同时release分支由此分支检出。
-
3.release分支,即发布分支,从develop分支上检出。该分支用作发版前的测试,可进行简单的bug修复。如果bug修复比较复杂,可merge回develop分支后由其他分支进行bug修复。此分支测试完成后,需要同时merge到master和develop分支上。
-
4.feature分支,即功能分支,从develop分支上检出。团队成员中每个人都维护一个自己的feature分支,并进行开发工作,开发完成后将此分支merge回develop分支。此分支一般用来开发新功能或进行项目维护等。
-
5.fix分支,即补丁分支,由develop分支检出,用作bug修复,bug修复完成需merge回develop分支,并将其删除。所以该分支属于临时性分支。
-
6.hotfix分支,即热补丁分支。和fix分支的区别在于,该分支由master分支检出,进行线上版本的bug修复,修复完成后merge回master分支,并merge到develop分支上,merge完成后也可以将其删除,也属于临时性分支。
git命令
1.develop分支的创建与使用
git branch develop master # 从master分支上新建develop分支
git checkout develop # 检出develop分支
#此处可进行功能开发,并add和commit到develop分支
git push origin develop # 推送develop分支到远端的origin/develop
2.新增成员分支
git clone xxxx.git
git checkout develop
git checkout -b feature-xx develop # 从develop分支新建并检出feature分支
//此时“xianhu”做如下操作,并首先第一个提交到了Github远端:
git checkout -b feature-hu develop # 从develop分支新建并检出feature分支
#这里可以进行一些功能开发,并不断的add和commit
git checkout develop # 切换回develop分支
git pull origin develop # 更新远端代码,看develop分支是否有更新(无更新)
git checkout feature-hu # 切换回feature分支
git rebase develop # 合并develop分支到feature分支,并解决冲突(无冲突)
git checkout develop # 切换回develop分支
git merge --no-ff feature-hu # 合并feature分支到develop分支
git push origin develop # 推送develop分支到远端
3.提交遇到冲突
git checkout -b feature-zz develop # 从develop分支新建并检出feature分支
# 这里可以进行一些功能开发,并不断的add和commit
git checkout develop # 切换回develop分支
git pull origin develop # 更新远端代码,看develop分支是否有更新(有更新)
git checkout feature-hu # 切换回feature分支
git rebase develop # 合并develop分支到feature分支,并解决冲突(有冲突)
# 这里需要进行冲突解决
git add . # 解决完冲突之后执行add操作
git rebase --continue # 继续刚才的rebase操作
git checkout develop # 切换回develop分支
git merge --no-ff feature-zz # 合并feature分支到develop分支(无冲突)
git push origin develop # 推送develop分支到远端
目前用到就这些,以后遇到新的操作还会更新