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 团队协作

  • 相关阅读:
    UVA 254 Towers of Hanoi
    UVA 701 The Archeologists' Dilemma
    UVA 185 Roman Numerals
    UVA 10994 Simple Addition
    UVA 10570 Meeting with Aliens
    UVA 306 Cipher
    UVA 10160 Servicing Stations
    UVA 317 Hexagon
    UVA 10123 No Tipping
    UVA 696 How Many Knights
  • 原文地址:https://www.cnblogs.com/stars-one/p/11618624.html
Copyright © 2011-2022 走看看