Git多人协作

参考了网上的各种资料,对Git多人协作有所了解,写下此篇笔记,理理自己的思路

概念介绍

我这里只介绍分支,一般项目中,有下面几种分支

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

master分支是主分支,一般是由项目经理(负责人)进行管理,一般我们都无法修改其中的内容

develop分支则是在master分支分出来,我们以develop分支作为基本,分出我们的自己需要开发的功能分支,也就是feature分支,之后进行项目的某些功能开发。

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

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

master分支

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

develop分支

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

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

release分支

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

该分支用作发版前的测试,可进行简单的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 团队协作


提问之前,请先看提问须知 点击右侧图标发起提问 联系我 或者加入QQ群一起学习 Stars-One安卓学习交流群 TornadoFx学习交流群:1071184701
posted @ 2019-10-02 22:15  Stars-one  阅读(845)  评论(0编辑  收藏  举报