`

看完给跪了:技术大牛总结的Github与华为软件开发云完整对比

阅读更多

华为软件开发云配置管理 服务和Github是国内外比较有代表性的代码托管平台,它们以git作为版本管理工具,使项目中身处各地的人员可以协同工作,主要操作涉及仓库、分支、提交、pull request等知识。本文将讲述它们的操作和区别。

Github介绍

一.注册

填写个人资料,邮箱激活。

二.仓库

1.仓库类型

私有仓库:每月缴纳7美元,后期可以随时调整成其它免费的公共仓。

公有仓库:免费,所有人可见。

2.新建仓库

一个仓库通常用于单个工程,仓库可以包含文件夹,文件,图片,视频,表格等任何项目所需资料。Github在新建项目时可以选择同时创建README文件或license文件。

(1)在网页的右上角,点击头像旁边的加号,选择“New repository”。

(2)给仓库命名为“hello word”

(3)可以写一个简短的项目描述

(4)选择“Initialize this repository with a README”

(5)点击“Create repository”

优点:

a)创建时可以选择gitignore类型,因为在工程编译过程中,会生成一些中间文件,或者项目中的一些文件是不需要进行版本管理的,这些文件对Github来讲是透明的,若gitignore选择了C项目,.lib .so .exe等都被忽略了。

b)Settings中可以对仓库重新命名

三.分支

分支是在同一仓库不同版本上工作的方法。仓库默认有一个master分支,一般用作生产环境。当从master分支新建一个分支,意味着在这个时间点对master分支做了一个拷贝或者说快照,其他人对master分支做的改动不会影响到新分支。

在Github上,开发者,设计者使用多个分支去修正bug和需求开发,验证OK后,最后合并到master生产分支。

1.新建分支

(1)进入仓库

(2)单击文件列表顶部的下拉框“branch: master”

(3)在文本框中敲入新分支名字feature

(4)选择“Create branch”或者直接回车

2.在线编辑

每个提交都有关联的提交信息,用来解释为什么要做这样一个修改。提交信息记录的这些历史,可以使其他开发人员了解这次提交做了什么和为什么要这样做。

(1)点击README.md文件。

(2)点击要编辑文件右上角的“铅笔”图标

(3)在编辑器中,随便写点什么

(4)写点提交信息描述你的更改

(5)点击“Commit changes”按钮

优点:

a)Preview changes可以边修改边查看差异

3.pull request申请

pull request是github协作的核心,可以申请一个pull request,请求别人review自己的修改。Pull request会显示两个分支内容的不同,这些变更,增加和删除的行数会用绿色和红色显示出来。不但在提交代码后可以申请一个pull request,甚至可以在代码完成前提出,讨论代码如何修改。

(1)点击顶部的pull request项,然后在点击绿色的“New pull request”按钮。

(2)选择你修改的base分支feature和原始分支master进行比较。

(3)在对比页面,仔细检查这些差异,确保是要提交的内容。

(4)确认OK之后,点击绿色的“Create Pull Request”按钮。

(5)给pull request写上题目和简短的描述

优点:

a)可以在pull request消息中使用github的“@”功能,请求特定的人或者小组反馈信息,无论他们在哪里都可以收到。

4.合并pull request

最后这一步,就是在feature分支上的修改合并到master分支

(1)点击绿色的“Merge pull request”按钮将修改合并到master分支

(2)点击“Confirm merge”

(3)点击pull request成功提示右边的“Delete Branch”

优点:

a)merge有三种方法

b)可以在线修改冲突

c)合并后删除的branch可以修复

四.github工作流

Github工作流是轻量级的,只有一个长期master分支的工作流。

来个图表显示:

·Master分支

·一个新的feature分支(因为我们要在这个分支上做特性开发)

·Feature合并到master之前的轨迹如下

1.创建一个分支

在做一个项目时,可能会在某个特定的时间有一大堆特性或想法——有已经准备好开始干的,有没想好的。分支的存在就是来帮助管理这些工作流。

创建好一个分支以后,就可以随意按照自己的想法来修改,因为这个分支不会影响主分支,可以随意提交修改测试,直到做好验证才合入主分支。

分支是Git的核心概念,整个Github工作流都是基于它的,一条原则就是:主分支的任何东西都是可部署的。因此,在开发某个需求或者解决某个bug的时候,必须是从主分支拉取的分支,并且分支名是描述性的,以便其他人知道你在干什么。

2.做提交

提交可以让别人清晰的看到分支的修改和为什么这么改,每次提交也都需要有提交信息。此外,每次提交应该是一个独立的单元,这样,可以在发现问题或者方案改变时进行回滚。

3.提一个pull request

提一个pull request开始对提交修改进行讨论,大家都能清晰的看到接受这次请求之后有哪些修改将被合并。

如果工作陷入了困境,即使没有代码也可以提一个pull request,放一些截图或者想法,让大家给一些建议。

Pull request方式对开源代码的合并是非常有意义的,它可以让代码在合入master分支前有一个充分的review

4.讨论和review代码

一旦pull request被提出,reviewer将提出问题或者给出评语,比如:编码风格和项目风格不一致,缺少单元测试等等,pull request设计的初衷就是鼓励这些交流。

5.部署

当pull request通过review和测试,就可以部署到生产环境中。如果分支引起了问题,可以通过重新部署master分支到生产环境来回滚版本。

6.合并

现在,提交已经在生产环境上验证过了,可以合入master分支了。

华为软件开发云配置管理服务VSgithub

1.收费标准

Github私仓每月缴纳7美元。

华为软件开发云 配置管理服务5人以下,500M仓库免费。存储空间收费标准为0.000442(元/GB/小时),一个月1G代码约0.318元。

2.页面友好度

Github需要在Your profile中查看仓库,各项操作堆叠在一个页面。

华为软件开发云配置管理服务,左侧分类显示内容,主页选项清晰。

3.工具集成

Github仅仅是一个代码托管平台。

华为软件开发云配置管理服务是这个Devops平台其中的一项服务,既可以作为代码托管平台单独使用,又可以作为整个研发工具链的一部分来使用,所有数据在工具间拉通,平台代码可以直接构建、部署,看到产品效果。

4.使用群体

Github历史悠久,在开源社区广受环境,个人使用者较多。

华为软件开发云 配置管理服务拥有更多的企业用户,企业使用这个平台用于整个研发周期。目前,个人使用者由于其指导详细,中文页面的优点,使用数量也在呈增长趋势。

分享到:
评论

相关推荐

    2020华为精英挑战赛.zip

    【华为软件精英挑战赛】是华为举办的一项针对软件开发与技术人才的重要竞赛,旨在激发学生和专业人士的创新潜力,提升其在软件设计、优化及解决实际问题的能力。参赛者不仅有机会接触前沿技术,还能通过实战积累宝贵...

    华为网站前端代码

    【华为网站前端代码】是华为公司内部用于学习和分享的前端开发资源,涵盖了构建现代Web应用所需的各种技术和实践。这份资料对于想要深入了解华为网站前端架构、设计模式以及最佳实践的人来说,是一份非常宝贵的学习...

    terraform华为云provider驱动程序包

    terraform是近两年很火的自动化运维云管工具,...华为云的terraform provider驱动包是托管在github上面的,大家可以访问下面的链接下载。由于网速很慢,实际上下载这个驱动包时经常会失败,所以上传和分享一份出来。 ...

    Android 选择图片、上传图片之PictureSelector

    集成方式 implementation ‘com.github.LuckSiege.PictureSelector:picture_library:v2.2.3’ 依赖 build.gradle加入 allprojects {  repositories { ...3.解决图片过大oom闪退问题 4.动态获取系统

    源码 SpringBoot 文件管理(支持FastDFS/FTP/阿里/华为OBS/天翼云/联通云/移动云)源代码

    可支持FastDFS存储、FTP存储、天翼云存储、华为云存储(OBS)、阿里云存储(OSS)、移动云。可通过配置自动切换存储类型。本微服务支持临时文件24小时自动删除、文件下载。本资源也包含了Github更新地址

    华为编程开发规范与案例.rar

    《华为编程开发规范与案例》是一份集合了华为公司在软件开发领域的实践经验与规范标准的重要资料。这份资源旨在提升开发人员的编程素质,确保代码质量,提高团队协作效率,并且遵循最佳实践,降低软件维护成本。以下...

    godssoso.github.io:华为商城项目

    华为商城项目 本项目包括9个页面:官网,商城,登录,注册,4个详情页,购物车 官网页面包含轮播图,下拉菜单,搜索框弹出,返回顶部,购物车下二级菜单滑动时的定位切换以及一些C3效果 商城页制作了三种轮播图:...

    华为Nova5Pro刷机(AL10A-10.1.0.170)

    华为Nova5Pro卡刷包

    leetcode分类-guoguanglu.github.io:欢迎来到我的github页面。你可以了解我所有的项目和学到的知识

    leetcode 分类欢迎来到我的 GitHub 页面 你好! 欢迎来到我的 github 页面。 在这些页面中,您可以获得我所有项目的概览以及我所学知识的摘要。...您可以通过单击相应的链接查看特定内容。...华为2018码Craft.i

    华为软件精英挑战赛初赛、复赛、决赛代码(决赛第14名)源码+学习说明.zip

    华为软件精英挑战赛初赛、复赛、决赛代码(决赛第14名)源码+学习说明.zip # 概览 赛题《大视频时代•布局》背景如下,摘自[2017年比赛官网](http://codecraft.huawei.com/): >在给定结构的G省电信网络中,为了视频...

    evil-huawei:邪恶的华为-华为作过的恶

    邪恶的华为-华为作过的恶 简介 由于部分内容被控评和缩减帖,已经无法在中文互联网搜索到,所以本项目将收集华为作过的恶,记录这些不应该被遗忘的历史。 目录 如何贡献 为了保证阅读体验,布局参考。 以事件名...

    mxnet防止github速度太慢

    这时,可以利用国内的GitHub镜像服务,如阿里云、华为云、腾讯云等提供的镜像加速器,将MXNet仓库的克隆地址替换为镜像服务的URL,这样能显著提高下载速度。 2. **设置Git代理**:如果你的网络环境支持,可以通过...

    华为编程开发规范与案例

    华为作为全球知名的科技公司,其编程开发规范与案例提供了宝贵的指导,旨在帮助开发者遵循一套高效、清晰且可维护的编码标准。以下是对这些规范和案例的详细解读: 1. **编程规范**: - **命名规范**:华为强调...

    华为垃圾分类大赛亚军答辩PPT

    2、模型的尝试和选择非常重要,不同的数据和任务模型差异非常大, 并不是根据github或者论文对比里面的准确度。 3、融合的方式:加权平均、几何平均,靠上分尝试,在每天有剩余次数 的情况下,做更多的融合尝试 4...

    华为笔试题java-starred:我的GitHub星星的精选列表!

    华为笔试题java 真棒明星 我的 GitHub 星星的精选列表! 生成者 内容 集会 - 用于命令和月球模块的原始阿波罗 11 号制导计算机 (AGC) 源代码。 - MS-DOS 1.25 和 2.0 的原始来源,仅供参考 - ARM Cortex-M3 和 M4 的...

    教学大纲-《云计算原理与实践》.doc

    软件开发云章节讲解软件开发云的概念、华为软件开发云服务、DevCloud 技术方案等内容,并实践 DevCloud 实战。大数据与人工智能章节讲解大数据和人工智能的基本概念、云计算、大数据与人工智能的关系等内容。 本...

    华为Java笔试题

    根据提供的信息,我们可以总结出以下关于“华为Java笔试题”的相关知识点: ### 一、华为Java笔试题概览 #### 1.1 题库特点 - **规模**: 提供的题库虽然不大,但涵盖了华为在Java编程方面的一些核心考察点。 - **...

    huaweicloud-obs-sdk-go-3.19.11_OBS_Go_huawei_golang_华为obsgolang_

    OBS SDK for Go是华为云为开发人员提供的一套完整的Golang语言接口,它使得在Go语言环境下与OBS进行交互变得更加便捷。这个"huaweicloud-obs-sdk-go-3.19.11"版本的SDK,包含了最新的功能和优化,旨在提升开发效率和...

    华为笔试题java-GitHub-Chinese-Top-Charts:GitHub-Chinese-Top-Charts

    华为笔试题java 榜单设立目的 :China: GitHub中文排行榜,帮助你发现高分优秀中文项目; 各位开发者伙伴可以更高效地吸收国人的优秀经验、成果; 中文项目只能满足阶段性的需求,想要有进一步提升,还请多花时间学习...

Global site tag (gtag.js) - Google Analytics