• GitHub基本概念


    创建日期: 2018-09-22 09:50:06

    Git & GitHub

    Git是一个版本控制软件:

    读作[gɪt] ,拼音读作gē yì te

    Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

    GitHub是一个网站:

    读作[gɪt hʌb] ,拼音读作gē yì te hà bo

    GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.

    通常自己一个人开发时使用Git有助于对代码版本进行控制,返回到之前任意时间点,能够合并多个分支流,解决或查看冲突。假如有协作开发作用更大。

    而使用GitHub不仅能够用来存储Git库,其还会提供以下操作:

    • 文档需求:使用提出问题(issues),可以提出新的功能需求,记录缺陷,从而让团队进行开发
    • 独立分支流记录:使用分支(branches)和拉请求(pull requests),可以在不同的分支或功能下进行合作。
    • 评估工作进展:通过查看拉请求(pull requests)列表,可以查看目前工作状态下的所有不同功能,通过单击列出的任何一个拉请求命令,可以看到最新变化以及所有关于该动的讨论。
    • 看到团队的进展:通过使用Insights,可以看到团队的工作进展和脉冲(pulse)。

    关键概念/术语

    由于目前GitHub还是英文的,所以刚开始学习时不是很明白其中的某些概念,可能会觉得有点不明所以,经过一段时间的摸索,特整理如下:

    repository(仓库)

    单数,a repository;复数,repositories。概念:

    a place, building, or receptacle where things are or may be stored.

    相当于一个项目(Project)文件夹,仓库名也就是项目文件夹名称,可以在里面存放代码,各种和项目有关的文档等。

    A Demo GitHub repo

    watch(关注)

    长期关注某个项目的进展,设置在某些情况下发送提醒(到邮箱)。

    star(收藏)

    觉得某个项目不错,收藏一下,给个小星星,方便以后查看,同时也是对项目开发者的赞赏。

    fork(分叉)

    有时候我没有直接改变某个项目的许可,或者我想参与一个你不知道的人或者团队的开源项目,就可以克隆,修改,并使用拉请求的方式将其提交到最初的项目中。

    issue(提出问题)

    用来讨论功能/需求,跟踪缺陷,或者两者兼备。比如我发现某个项目在PC上没问题,但移植到手机上就出现了位置的错误,就可以开一个issue来记录错误的过程。

    pull request(拉请求)

    原先拉请求是用来请求别人复查自己已经完成的工作,并将它们合并到主分支上。现在,拉请求常用在一个流程的早期阶段,可以讨论可能的功能。

    clone(克隆)

    将项目库复制到本地。例如我下载一个项目的副本,在本地将其中的某个bug修复,然后再提交回GitHub。

    wiki(维基文档记录)

    当Readme比较长了,可以使用wiki进行文档记录,各个章节页面用简单的链接关系相联系。(通常我看好像没多少中国开发者选择使用wiki,有的readme相当长)。

    commit(提交)

    将一个或者多个文件的修改保存到Git历史记录中,都会创建一个新的提交。

    branch(分支)

    • 主分支(master branch)
    • 功能分支(feature branch)

    merge(合并)

    将一个分支的全部工作合并到另一个分支,GitHub会在合并前检查是否有冲突并给出修改意见。

    release(发布)

    到了一定阶段,项目已经差不多了,就可以新建release,版本x.xx,来发布正式版供别人打包下载。

    GitHub学习资源

    • 初级:https://services.github.com/
    • 高级:https://developer.github.com/
  • 相关阅读:
    哪个电脑录屏软件好用又免费?十大好用的免费录屏软件排行
    【学习】渗透测试有哪些重要性
    泛型内容总结
    系统架构设计师考试题库重点案例:分布式数据库缓存设计
    NJ 时钟自动调整功能(SNTP)
    JSP实现数据传递与保存(一)
    如何提高项目决策的科学性和效率?
    maven-jar-plugin maven打包插件笔记
    Linux不同格式的文件怎么压缩和解压
    ESP8266-Arduino编程实例-VCNL4010光传感器驱动
  • 原文地址:https://blog.csdn.net/icurious/article/details/130915608