GitHub 指南

原文地址:GitHub官网指南

示例项目:Hello World

十分钟轻松教学

在学习计算机语言编程的过程中创建Hello World 项目是一个历史悠久的传统。当你接触一门新事物的时候可以用它来做一个简单的练习。让我们开始使用github吧!

通过本文,您将会学到:

  1. 如何创建和使用仓库
  2. 如何创建和管理分支
  3. 如何改变一个文件并将它提交到github上
  4. 如何发起以及合并请求

什么是GitHub?


GitHub是一个代码版本控制和协作的托管平台。它可以让你和你的伙伴在任何地方一起进行项目开发。

本教程将帮助你学习GitHub的必备知识,如“仓库”、“分支”、“提交代码”以及“请求代码合并”。你将创建你自己的“hello-world”仓库并且学习GitHub的请求代码合并工作流,这是目前一种非常流行的创建和审查代码方式。

无需编码

要完成本教程,您需要注册一个GitHub账户并且需要联网。你不需要知道如何编码,如何使用命令窗口以及如何安装Git(GitHub的客户端软件)。

提示:你可以将本指南在一个单独的浏览器或浏览器tab窗口中打开,这样你就可以边看着指南边进行操作了。

第一步:创建一个仓库

一个仓库通常用来组织一个单独的项目。该仓库可以包含你项目中的所有文件,如文件夹、文件、图片、视频、电子表格、数据集等。我们建议包含一个README文件,或者你自定义的用来记录项目信息的文件。GitHub将默认在你创建仓库的时候添加它。在创建的同时还提供了权限许可选项。

你可以用你的“hello-world”仓库来存储你的想法、资源,甚至用它来和别人分享、讨论任何事情。

创建一个新的仓库

  1. 在页面的最右上角,你的头像的左边,点击“+”,在弹出的下拉选项中选择“New repository”。
  2. 在仓库名称输入框中输入你的仓库名称:“hello-world”。
  3. 写一个简短的描述。
  4. 勾选“Initialize this repository with a README”。

点击“Create repository”按钮,完成创建。

第二步:创建一个分支

分支是一个可以让你在同一时间工作在同一个仓库的不同版本的方法。

在你的仓库中会有一个默认的名叫“master”的主分支,该分支用来存储你最终确定的版本代码。我们用其他的子分支来进行编辑和更改,确定之后再提交到主分支。

当你从主分支创建出一个子分支的那一刻,其实你就是对当时时间点的主分支做了一个拷贝。如果之后别的分支的人对主分支做出了更新,在你提交到主分支之前,你必须先从主分支上拉取那些更新。

下面的图表将显示分支合作的整个流程:

  • 主分支
  • 一个新的命名为“feature”的子分支(因为我们正在这个分支上做开发)
  • “feature”分支合并到主分支之前的历程

你是否像下面这样保存过不同版本的文件?

  • story.txt
  • story-joe-edit.txt
  • story-joe-edit-reviewed.txt

在GItHub仓库中的分支就是为了完成类似的功能。

在GitHub上,我们的开发人员,编辑人员以及设计人员,分别在独立的分支上完成自己修改bug或功能编写的工作。当一个功能编写确定之后,他们就将自己的分支合并到主分支上。

新建一个子分支

  1. 进入你的“hello-world”仓库
  2. 点击文件列表上方的写着“branch: master”的下拉框
  3. 在输入框中输入新的分支名字“readme-edits”
  4. 点击下方蓝色背景的分支创建框或直接按键盘的“Enter”键

现在,你已经有了“master”和“readme-edits”两个分支了。他们看起来几乎一模一样,但是不要着急,接下来,我们将在我们新建的子分支上做出一些改变。

第三步:做出修改并提交

干得好!现在,你已经在你的新分支“readme-edits”上了,让我们来对它写点什么。

在GitHub中,保存更改被称为“提交”。每一次提交都需要写一段我们为什么做出修改的备注说明。这些备注说明将对你的更改做出记录,其他伙伴看到之后就知道你每次都提交了什么。

做出修改并提交

  1. 点击“README.md”文件,切换到“README.md”内容页面
  2. 点击编辑框右上角的铅笔按钮,进入编辑界面
  3. 在编辑框中,写一些你自己的信息
  4. 在下方的“提交更改”框中,输入你做出此次修改的备注说明
  5. 点击下方的“Commit changes”按钮

这些更改只是针对于位于你的“readme-edits”子分支中的 “README.md ”文件,所以现在这个分支上包含的内容和主分支上已经有所不同。

第四步:发出“请求代码合并”请求

现在你已经对你的新分支做出了修改,我们可以发出“请求代码合并”的请求啦。

请求代码合并是GitHub团队协作的核心功能。当你发出一个“请求代码合并”请求的时候,相当于你请求别人拷贝你当前的代码做出审查,审查通过之后将你的代码下载并且合并到他们的分支上。该请求将会在所有的分支上显示出不相同的部分。你做出的任何更改、增加以及减少,都会用绿色和红色显示出来。

在你的代码完成之前,你可以随时进行代码提交,发起请求代码合并的请求以及进行一场讨论。

你可以通过GitHub的“@”功能,在每次发出“请求代码合并”请求的时候,向特定的人或团队做出反馈,无论这个人是在你身边还是远在千里之外。

你可以向自己的仓库发出“请求代码合并”的请求,并且自己去合并他们。这在你接触到大型项目之前是一个非常好的练习方法。

为更改的README文件发出“请求代码合并”请求

第一步:点击“Pull Request”选项卡按钮,切换到请求代码合并页面,点击绿色的“New pull request”按钮

第二步:选择你创建的“readme-edits”分支,与主分支进行比较。

第三步:在对比页面查看这些更改,确定他们就是你想要提交的。

第四步:当你确定这些更改就是你所要的时候,点击绿色的“Create Pull Request”按钮。

第五步:为你的更改做一个简单的标题和描述。

当你写完备注描述之后,点击“Create pull request”按钮。

提示:你可以使用emoji表情或者拖拽图片到评论窗口进行评论。

第五步:合并你的“请求代码合并”请求

这是整个过程的最后一步,是时候将你在子分支“readme-edits”做出的更改合并到主分支“master”上了。

  1. 点击绿色的“Merge pull request”按钮,将这些修改合并到主分支
  2. 点击“Confirm merge”按钮
  3. 由于这个分支的更改已经被合并了,所以我们还需要点击紫色框中的“Delete branch”按钮,删除这个分支

大功告成,你已经学会如何在github官网上管理自己的项目了。

GITHUB手册的更多相关文章

  1. Git多个SSH KEYS解决方案(含windows自动化、TortoiseGit、SourceTree等)

    工作过程中,经常会使用到多个git仓库,每个git仓库对应一个账号,可以理解为每个git仓库对应一个ssh key,因此我们需要管理多个ssh key.   一.快速创建ssh key   1. 创建 ...

  2. 搜刮一些开源项目的APP

    iOS完整App资源收集 <iOS完整app资源收集>  <GitHub 上有哪些完整的 iOS-App 源码值得参考?> <GitHub 上有哪些完整的 iOS-App ...

  3. Github快速入门手册

    最近在试用Github,开源的思想也让人觉得把一些经验分享出来是非常好的事情.附件是doc文件,如有需要请注意查收.希望能对你有帮助. GITHUB基于互联网的版本控制快速入门手册 如有不妥,欢迎指正 ...

  4. Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)

    简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...

  5. PostgreSQL - 官方手册、中文手册及Github项目地址

    PostgreSQL每次更新都会有语法变化,低版本的PostgreSQL是无法运行高版本的sql语法的,下边是官方手册地址,可以查看多个版本的: https://www.postgresql.org/ ...

  6. GitHub最强技术面试手册:Tech Interview Handbook

    摘要: 求职还是需要认真准备的. 原文:超实用技术面试手册,从工作申请.面试考题再到优势谈判,GitHub获30000星 作者:量子位 技术人员求职面试,单刷leetcode上的大厂题库可能还不够. ...

  7. GitHub 使用手册 - 基础篇

    缘起 Git已经成为程序员必备技能之一,而GitHub做为做流行的Git仓库托管平台,其不仅提供Git仓库托管,还是一个非常棒的技术人员社交平台,可以通过开源的项目进行协作.交流,是现在优秀的工程师必 ...

  8. GitHub教程手册、使用流程

    简述GitHub的使用方法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请调整网页缩放比例至200%) 1 注册过GitHub的朋友, ...

  9. github使用手册

    1.git init 2.git add README.md (增加文件夹/文件:git add dir/files) 3.git commit -m "注释内容” 4.git push - ...

随机推荐

  1. JavaEE 期末总结

    struts2部分 一.struts2框架的集成: 1.web.xml配置struts2过滤器:前端控制器.核心控制器 如果有多个过滤器,需要将该过滤器放置到最后一个 2.struts.xml配置:主 ...

  2. python抓取不得姐动图(报错 urllib.error.HTTPError: HTTP Error 403: Forbidden)

    抓取不得姐动图(报错) # -*- coding:utf-8 -*- #__author__ :kusy #__content__:文件说明 #__date__:2018/7/23 17:01 imp ...

  3. JMX远程监控JVM

    远程监控JVM状态需要在JVM启动的时候需要加上一段代码开启这个功能.(以下全部以ubuntu-14-04-server.jdk1.8.tomcat7.0环境为基础) 配置的时候分两种情况:1.无需配 ...

  4. 【解决方案】ArcGIS导入要素集后没反应

    内容源自:ArcGIS10.2基础教程(丁华) 书上要求: 1.在“练习”文件夹中新建一个名为“沈阳”的个人地理数据库和名为“shenyang”的要素集,设置地理坐标为“Xi'an 1980”,高程坐 ...

  5. Spring-Cloud之Feign声明式调用-4

    一.Feign受Retrofit.JAXRS-2.0和WebSocket影响,采用了声明式API 接口的风格,将Java Http 客户端绑定到它的内部. Feign 首要目的是将 Java Http ...

  6. springcolud 的学习(二).微服务架构的介绍

    什么是微服务微服务架是从SOA架构演变过来,比SOA架构粒度会更加精细,让专业的人去做专业的事情(专注),目的提高效率,每个服务于服务之间互不影响,微服务架构中,每个服务必须独立部署,互不影响,微服务 ...

  7. Q-Q图和P-P图

     一. QQ图      分位数图示法(Quantile Quantile Plot,简称 Q-Q 图)       统计学里Q-Q图(Q代表分位数)是一个概率图,用图形的方式比较两个概率分布,把他们 ...

  8. MongoDB和Java(4):Spring Data整合MongoDB(XML配置)

    最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...

  9. DOS之del命令

    基本 del命令是用来删除一个或多个文件的,删除文件夹的话还要用rd命令. 举个栗子: 例如我们要删除C盘中的a.txt,我们就可以 del a.txt 也可以同时删除多个,用空格,逗号或分号分开文件 ...

  10. 一个爬虫的demo,requests,beatuifulsoup使用的

    爬虫的demo,requests,beatuifulsoup import os,re import requests import random import time from bs4 impor ...