Git多人协做

参考了网上的各类资料,对Git多人协做有所了解,写下此篇笔记,理理本身的思路html

概念介绍

我这里只介绍分支,通常项目中,有下面几种分支git

  • master分支
  • develop分支
  • release分支
  • feature分支
  • fix分支
  • hotfix分支

master分支是主分支,通常是由项目经理(负责人)进行管理,通常咱们都没法修改其中的内容github

develop分支则是在master分支分出来,咱们以develop分支做为基本,分出咱们的本身须要开发的功能分支,也就是feature分支,以后进行项目的某些功能开发。单元测试

开发完以后,与develop分支进行合并,由管理develop分支的开发者进行代码审查和单元测试,而后发送一个更新到master分支的请求给项目经理。测试

项目经理再次进行代码审查和单元测试,肯定无误以后就把develop分支合并到master分支上编码

master分支

master分支,即主分支。任何项目都必须有个这个分支。对项目进行tag或发布版本等操做,都必须在该分支上进行。code

develop分支

develop分支,即开发分支,从master分支上检出。orm

团队成员通常不会直接更改该分支,而是分别从该分支检出本身的feature分支,开发完成后将feature分支上的改动merge回develop分支。同时release分支由此分支检出。htm

release分支

release分支,即发布分支,从develop分支上检出。blog

该分支用做发版前的测试,可进行简单的bug修复。若是bug修复比较复杂,可merge回develop分支后由其余分支进行bug修复。此分支测试完成后,须要同时merge到master和develop分支上。

feature分支

feature分支,即功能分支,从develop分支上检出。

团队成员中每一个人都维护一个本身的feature分支,并进行开发工做,开发完成后将此分支merge回develop分支。此分支通常用来开发新功能或进行项目维护等。

fix分支

fix分支,即补丁分支,由develop分支检出,用做bug修复,bug修复完成需merge回develop分支,并将其删除。因此该分支属于临时性分支。

hotfix分支

hotfix分支,即热补丁分支。

和fix分支的区别在于,该分支由master分支检出,进行线上版本的bug修复,修复完成后merge回master分支,并merge到develop分支上,merge完成后也能够将其删除,也属于临时性分支。

多人协做流程

开发步骤:

1.设置编码

去Android Studio的editor->file encodings修改编码为utf-8格式


2.克隆代码

使用Android Studio下载源码

以后在输入框中输入项目的github地址便可自动下载

3.建立分支

下面的代码是建立一个分支,并切换到分支

git checkout -b 分支名(任取)

4.提交、上传、合并

# 以后在你本身建立的分支上进行功能的开发,完成了一个或多个功能均可以输入下面的命令进行保存
# 开发功能过程当中,add和commit这两个命令就能够无限循环,写完一个功能来一次
git add .
git commit -m "说明(大概说一下实现了什么功能)"
# 推送到远端,实际也是至关于作一个备份,不须要常常执行
git push origin 分支名(第3步中的取的分支名)


# 更新本地的dev,保持与最新的一致
git checkout dev
git pull
# 合并操做
# 这一步可能会出现冲突,须要进行冲突处理,冲突处理完以后从新执行add和commit命令
git merge --no-ff 分支名(第3步取的分支名) 
# 推送合并好的dev分支到远端,供别的开发者更新
git push origin dev
# 以后切换到你本身的分支,再次进行开发
git checkout 分支名

若是合并出现了冲突错误,本身修改一下出现冲突的那些文件

冲突文件的格式以下:

<<<<<<< HEAD
ln -s ../statics xxx
=======
ln -s ../statics statics
>>>>>>> dev

<<< head=======就是你分支中代码,而=======<<< dev则是dev分支中的代码,根据本身的要求保留。

假如我要保留我分支的代码,则照下面的格式删除其余内容

<<<<<<< HEAD (删除)
ln -s ../statics xxx (保留)
======= (删除)
ln -s ../statics statics (删除)
>>>>>>> dev (删除)

若是git pull提示no tracking information,则说明本地分支和远程分支的连接关系没有建立,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

git branch --set-upstream-to dev origin/dev

团队协做的流程:

  1. 首先,能够试图用git push origin 推送本身的修改;
  2. 若是推送失败,则由于远程分支比你的本地更新,须要先用git pull试图合并;
  3. 若是合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
  5. 若是git pull提示no tracking information,则说明本地分支和远程分支的连接关系没有建立,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

git+github 团队协做

相关文章
相关标签/搜索