专栏首页HTML5学堂使用Git多人协作,完成项目开发

使用Git多人协作,完成项目开发

HTML5学堂-利利:关于Git的知识,我们共分成了四个大步骤进行讲解,之前我们提到了Git的安装与配置、Git在本地的使用方法,如何创建Git本地仓库与服务器端仓库的关系。今天我们来讲最后一个“大点”:如何使用Git多人协作,完成项目开发。

想要进行多人协作,有两方面的知识要掌握,一方面是在GitHub上进行多人团队项目的创建和管理;另一方面是如何进行多人的配合(会涉及到Git中的分支概念)。

GitHub - 创建组织

点击头像,选择Setting,选择Organization,选择New Organization

填写组织相关名称、邮箱等基本信息。

通过用户名或其他搜索,搜索到GitHub中的用户(自己的开发队友),并将他们加入到这个组织当中。

备注:所添加的“队友”并不能够立刻添加到组织当中,需要等待他们同意(GitHub会发送确认邮件给他们)

GitHub - 创建仓库/项目

在创建完成组织之后,会自动进入到创建仓库(项目)的步骤,和我们之前创建仓库(项目)一样,正常填写仓库(项目)名称、描述即可

此处具体的步骤可参见之前利利写的Git的第三篇文章《如何创建Git本地仓库与服务器端仓库的关系》

依旧是遵循“本地创建SSH Key(如果之前没有创建SSH Key) ——> 在GitHub上增加SSH Key ——> GitHub上设置SSH Key,创建关系 ——> 在GitHub上创建仓库 ——> 在本地添加仓库 ——> 将本地库的内容发送到服务器的仓库或从Git上克隆文件”这样的顺序进行操作。

GitHub - 权限控制

如何让项目的每个成员具有操作权限?当我们完成上面的一系列操作之后,成员能够从GitHub当中拉取文件(clone),但却没有权限修改文件,此时我们需要针对每个成员进行操作权限的设置。

进入Setting,进行权限设置即可,这时,所有的成员都具备了读写的权限。

然后你可以让你的团队成员提交、拉取一下数据,如果成功了,那么就说明你的团队成员都可以使用自己的Git连接当前的GitHub了。

Tips:在连接GitHub时,需要输入用户的账户和密码,而在WIN7的部分机器当中,输入密码的过程是看不到的。

工作原理 - 如何进行多人合作

所有准备工作完成之后,接下来要做的就是,如何合作。我们可以每个人都在master当中进行操作,但是这时候会有什么问题呢?会不会整个master变得很乱?也有可能出现各种问题?

为了防止这种混乱现象的发生,我们在实际开发中的工作原则是这样的:

master是我们的主分支(也可以理解为主线),我们为了让这条分支足够稳定,只在这个分支上进行新版本的发布或者项目的更新。

对于一个项目的所有操作,都创建一个develop分支,在这个分支上进行各个开发者代码的合并。

由于一个项目有可能是多个人协作实现的,因此会每个人创建一个自己的分支,然后每个人将自己的代码,从个人分支提交到develop分支做合并。

Git - 分支的相关操作命令

了解如何进行团队配合之后,就需要面临“创建分支”“合并分支”“删除分支”等操作。一起来看一下Git的命令。

查看当前分支

命令:$ git branch

使用此命令,所有的分支都会被罗列出来,同时,会在当前用户处于的分支名称的前面,添加一个星号(※)作为标识。

创建分支

命令:$ git branch 分支名称

如:$ git branch develop

使用此命令,将会创建一个分支,但是注意,这个分支创建之后,并不代表我们就处于这个分支了!如果想“移动到”某个分支上时,还需要切换分支。

切换分支

命令:$ git checkout 分支名称

如:$ git checkout develop

如果切换到其他一个未创建的分支(比如手误输入错误),系统会给出错误,告知当前没有创建这个分支

创建并切换分支

命令:$ git checkout -b 分支名称

如:$ git checkout -b pipi

创建分支、切换分支,两条命令虽然可以操作,但是稍微麻烦一些,于是Git为我们提供了一个二合一的方法,更便于我们的操作。

如何将创建的分支提交到GitHub

在本地切换到需要提交的分支,使用之前我们讲过的commit命令,进行提交,之后使用push命令即可。此时在Git上就出现了两个分支

其他用户如何使用这个新分支

如果我们希望每个人都在这个新分支(develop)上进行协作开发,那么团队中的每个人就需要在自己的Git中新建一个分支,并切换到这个分支,之后,从GitHub中将新分支拉取下来。

即:创建develop分支——>切换到新的分支——>拉取GitHub中develop分支(拉取远程分支)

拉取远程分支的两种方法

命令:git pull 远程仓库名 分支名

如:git pull origin develop;拉取远程仓库(origin)的develop分支的内容,并且会立即将下载的文件合并到你当前工作目录里

命令:git fetch 远程仓库名 分支名

如:git fetch origin develop;拉取远程仓库(origin)的develop分支的内容,但是不会立即将下载的文件合并到你当前工作目录里

拉取GitHub的develop分支后,如果GitHub的develop分支与本地的develop分支产生文件冲突(有不同的地方),会产出如下类似的情况:

上方的红色框标注是本地develop的文件内容,下方的红色框标注是GitHub的develop分支文件内容。

解决该问题的方法很简单,通过人工进行文件的合并,然后通过add和commit命令进行提交即可解决问题。

合并分支

当每个开发者在各自的分支上进行操作之后,需要将各自的开发结果提交到公用的develop分支上(此处我使用的分支名字是h5course-1,你可以用任意的名字),此时,就需要涉及到分支的合并。

即:新建h5course-1分支——>切换新分支——>在h5course-1进行开发——>开发完成后,切换到develop分支上——>与h5course-1进行合并——将develop推送到GitHub中

命令:git merge 分支名

如:git merge bug 当前分支与bug分支进行合并

h5course-1分支:

假如已经在h5course-1分支完成开发了。

develop分支:

develop与h5course-1分支合并:

需要注意的点:因为develop分支是多人操作,所以与h5course-1合并之前,最好再拉取GitHub中的develop分支,从而保证与h5course-1合并的develop是最新的版本。

HTML5小编-利利&堡堡&皮皮~10+hours

本文分享自微信公众号 - HTML5学堂(h5course-com),作者:HTML5学堂

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-06-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CSS检查工具-CKStyle

    HTML5学堂:CSS代码存在压缩工具、检查工具以及重排属性的工具。今天推荐给大家CKStyle这个工具,顺便也来看看其他的一些工具。 各类CSS检查工具 首先...

    HTML5学堂
  • scrollLeft等属性介绍

    HTML5学堂:在平日中书写滚动类特效时,为了提升代码的扩展性,通常会使用变量替换掉常量,此时会经常用到scrollLeft、offsetWidth、clien...

    HTML5学堂
  • 2016.06 第三周 群问题分享

    HTML+CSS 怎么让一个容器里面不管存在2个子元素还是1个子元素都能垂直居中 2016.06.20~2016.06.24 核心内容 弹性布局 参考答案 实例...

    HTML5学堂
  • Unpaired Image Enhancement Featuring Reinforcement-Learning-Controlled Image Editing Software

    论文题目: Unpaired Image Enhancement——Featuring Reinforcement-Learning-Controlled Im...

    Natalia_ljq
  • 腾讯高性能分布式路由技术,亮相亚太网络研讨会APNet

    亚太网络研讨会(APNet)汇聚亚太地区计算机网络和系统领域最优秀的研究人员,分享各自最新的研究成果,讨论当前最前沿的热点研究问题。2020年8月3-4号,为...

    鹅厂网事
  • 代码审查如何保证软件质量

    在软件行业,您可能经常会听到术语“代码审查”。但是,代码审查的概念经常被误解。人们通常认为它在软件开发生命周期中被忽视执行测试应足以满足验证过程。因此,他们倾向...

    FunTester
  • 浅谈语音识别、匹配算法和模型

    语音的基本概念 语音是一个复杂的现象。我们基本上不知道它是如何产生和被感知的。我们最基础的认识就是语音是由单词来构成的,然后每个单词是由音素来构成的。但事实与我...

    CSDN技术头条
  • spring boot加载复杂的yml文件获取不到值的问题

    今天使用spring boot读取yml文件,这种多层嵌套的竟然无法读取到(value注解spring.redis.pool.max.wait),即便加上全名...

    用户1215919
  • 文本挖掘:手把手教你分析携程网评论数据

    作者:飘雪 http://www.itongji.cn/cms/article/articledetails?articleid=1114 中文文本挖掘包tm...

    机器学习AI算法工程
  • pCloudy的方式–连续测试平台可实现高速,高质量的移动应用程序测试

    以应用为中心的组织所面临的持续挑战是,开发具有适应市场上各种移动设备,频繁更新设备OS版本的能力的应用。主要挑战之一是确保移动应用程序具有多平台支持。应用程序开...

    用户7466307

扫码关注云+社区

领取腾讯云代金券