zoukankan      html  css  js  c++  java
  • 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 团队协作

  • 相关阅读:
    2.5 整数和算法
    斑马问题
    计算机硬件操作
    幸福是什么
    英译汉技巧
    指令
    计算机性能
    硬盘容量的计算方法
    Symmetric Tree
    Same Tree
  • 原文地址:https://www.cnblogs.com/stars-one/p/11618624.html
Copyright © 2011-2022 走看看