GitHub简单教程
Hello World程序是计算机编程中由来已久的惯例,这是一个当你在学习新事物的时候开始的一个简单的小练习。让我们开始GitHub的"Hello World".
你将学会:
- 创建和使用一个版本库
- 开始和管理一个新的代码分支
- 对一个文件作出变化,并且将它们提交到GitHub上
- 打开及合并一个合并请求(pull request)
什么是GitHub?
GitHub 是一个进行版本控制和协作的代码托管平台。它可以让你与世界各地的开发者一起开发同一个项目。
这份指导将会教你GitHub的基本概念:版本库、分支、提交、以及合并请求。你将会创造属于你自己的Hello World 版本库并且学会GitHub的合并请求的工作流程,这是一个是受欢迎的创建和评审代码的方式。
没有写代码的必要
要完成这份教程,你需要一个GitHub网站的账号和能够连接连互联网,你不需要会写代码,也不需要会利用命令行及安装Git(GitHub内置的版本控制软件)。
提示:建议在单独的浏览器窗口(separate browser window)(或者标签),这样你可以在完成本教程的步骤时随时翻看本教程。
Step 1. 创建一个版本库
一个版本库是用来组织一个单独的项目。版本库中可以容纳文件夹和文件、图片、视频、电子表格,或是数据集,任何你的项目需要的东西。我们建议版本库中包含一个README,或者是一个介绍你的项目信息的文件。GitHub能够轻易地在你创建一个新的版本库的同时添加上述文件。GitHub也提供了其他常用的设置例如一个许可文件。
你的 hello-world 版本库将是一个你储存想法、资源甚至是与他人讨论想法的绝佳胜地。
新建一个新的版本库
1. 在页面靠近你的头像的右上角,点击十符号,选择New repository。
2. 将你的标准库命名为 Hello-World
3. 写一个简单的描述
4. 将 Initialize this repository with a README 选项勾上,这样GitHub在生成版本库的同时会生成一个README文件

5. 点击Create repository,这样一个HelloWorld的版本库便创建好了。
Step 2. 创建一个分支
分支系统是一个版本库同时在多个不同的版本上工作的一种方式。你的版本库在创建成功后会默认的创建一个名为master的分支,这个分支被认为是决定性的主线版本。在将内容提交到 master 分支之前,我们将会在其他分支上实验和修改我们的内容。
当你从 master 分支创建另外一个分支时,相当于将该时间段的 master 拷贝或者创建一个快照到你创建的分支上。当你在其他分支上工作时, master 分支被其他人修改了。这时候你可以在你的版本上合并这些更新。
下图展示出:
- 主线版本 master
- 一个叫做 feature 的新的分支(因为我们在这个分支上做着“未来的工作”)
- 在 feature 合并到 master 之前,它经历的过程

你是不是也对一个文件创建过下面的这些版本?
- 文件.txt
- 文件初稿完成版.txt
- 文件初稿完成版修改版.txt
- 文件最终修改版.txt
- 文件最终修改版再次修改版.txt
分支系统能够轻松的在GitHub中完成上述的工作。
在GitHub中,开发者,文案和设计者利用从 master (产品)单独拷贝的分支来进行bug的修改和功能独立的工作。当修改完毕,他们可以将他们自己的分支合并到 master 中。
创建一个新的分支
1. 跳转到你的新版本库hello-world。
2. 点击在文件列表顶端显示branch:master的下拉菜单
3. 在新的分支文本框中新分支的名称, readme-edits。
4. 选择蓝色的Create按钮或者敲击键盘的回车键。

现在,你就拥有了两个分支:主线分支 master 和 新创立的分支 readme-edits。这两个分支只是暂时看起来是一模一样的。接下来我们将会在新的分支上进行改动
Step 3. 进行和提交修改
接下来,你将要对你的readme-edits分支,master的一个备份,进行代码审查。首先我们先做出一些修改。
在GitHub中,保存更改的操作称为提交。每个提交的操作都会关联着一份提交信息,提交信息是一份解释为何要做出此更改的描述性文字。提交信息会保存你更改的历史,这样其他贡献者能够了解到你的成果以及你为什么要这样做。
制造并提交修改
- 点击
README.md文件。 - 点击文件预览窗口右上方的铅笔的小图标来进行编辑。
- 在编辑中,自由发挥写一点内容。
- 写一个描述你做出的改变的提交信息。
- 点击
Commit changes按钮。

刚才在README文件中做出的改变仅仅是在你的readme-edits分支上。所以现在这个分支上包含的内容与master上面的内容是不同的。
Step 4.打开一个合并请求
既然你已经在master之外的分支做出了许多的更改,那么你就可以开放一个合并请求。
合并是在GitHub上进行合作的核心。当你开放一个合并请求,意味着你正在提议你的修改,请求别人的评审并且采纳你的贡献将你修改的内容合并到他们的分支中。合并请求会显示出两个分支之间的差异和不同。修改,增加和减少将会以红绿对比的形式展示。
即使在编写代码的工作完成之前,只要你进行一次提交,你就可以开放一个合并请求并且开始一场讨论。
通过在你的合并请求信息中使用GitHub的提示信息,你可以向特定的人群或者团队请求回信,不论他们就在你楼下还是远在地球的另一边。
你甚至可以在你自己的版本库中开放请求信息然后合并它们,这是在处理大的项目之前一个很好的学习GitHub流程的方式。
对README的修改开放一个合并请求
1. 点击Pull Request标签,然后在合并请求的页面上,点击绿色的New pull request按钮
[
2. 选择你创建的分支readme-edits,拿它与master(源版本)进行比较。

3. 仔细检查比较页面你更改的不同,确保这些改变是你想要提交的

4. 当你对要提交的改变满意时,点击绿色的Create Pull Request的大按钮。

5. 给你的合并请求设置好题目并且对你做出的更改写一个简单的介绍

完成上述步骤之后,点击Create pull request创建合并请求
提示:你可以在合并请求和评论当中使用emoji表情和拖入图片或动图来更好的表达你的想法。
Step 5.提取你的合并请求
在最后的步骤,是将你的改变整合到一起去的时候——合并你的readme-edits分支到master分支上去
1. 点击绿色的Merge pull request按钮来将改变合并到master中。
2. 点击Confirm merge按钮来确认合并请求
3. 在分支被合并之后,可以利用紫色区域的Delete branch按钮来删除它。


祝贺你完成本次教程
在完成教程的过程中,我们学习了创建一个工程并且在GitHub上创建一个请求。
这是你在完成这份教程中所做的事:
- 创建了一个开源的版本库
- 开始并且管理一个新的分支
- 对文件作出改变,并且提交了这些改变在GitHub中
- 打开和合并一个合并请求
查看你的GitHub的侧面板你会看到你的新的贡献广场
想学习更多关于合并请求的功能,我们推荐阅读GitHub流程指南,你也可以访问GitHub浏览加入到开源项目中。
提示:可以查找我们其他的Guide,YouTube Channel以及On-Demand Training来学习更多开启GitHub的方法
GitHub简单教程的更多相关文章
- Git和Github简单教程
原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...
- Git和Github简单教程(收藏)
原文链接:Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的 ...
- Git和Github简单教程【转】
转自:https://www.cnblogs.com/schaepher/p/5561193.html#clone 原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但 ...
- 转:Git和Github简单教程
转自:https://www.cnblogs.com/schaepher/p/5561193.html Git和Github简单教程 原文链接:Git和Github简单教程 网络上关于Git和Gi ...
- Git和Github简单教程(转)
这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能: ...
- 如何使用github,简单教程
前期准备:先行设置SSH KEY(请看我之前发的关于设置添加SSH的文章) 直接上命令: clone 已有仓库到身边的开发环境中 git clone git@github.com:<yourna ...
- GitHub 简单教程
码农朋友们都知道,GitHub是一个面向开源及私有软件项目的托管平台,上面托管了众多的优秀的项目,比如Linux内核源码.Git源码.机器学习框架Tensorflow等等.当然,除了这些顶尖项目外,还 ...
- git和github使用教程
看官请移步git和github简单教程, 本文是上述链接的截图,担心哪天作者不小心删除了,备一份在自己这里,仅为自己看着方便.侵权请告知
- github简单使用教程
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.对于一般人来说公共仓库就已经足够了,而且我们也没多少代码来管理,O(∩_∩)O ...
随机推荐
- Java集合List模拟“洗牌”操作
Collection工具类为操作List集合提供了几个有用的方法: reverse().shuffle().sort().swap().rotate(). 小例子: 使用shuffle(),方法模拟洗 ...
- Oracle存在修改,不存在插入记录
接触编程以来,在数据存储方面一直用的MS SQL.Oracle这名字对我来说是如此的熟悉,但是对其内容却很陌生,最近公司的一个项目用起了Oracle,所以也开始高调的用起了Oracle.在没有接触Or ...
- DNS拾遗(一)
最近帮朋友注册域名配置主机,碰到一些DNS上的一些概念,惭愧于有一些东西已经忘记是啥意思,于是决定重新学习一下DNS方面的基本概念. 常用概念: TTL: TTL为Time to live的缩写,网络 ...
- 如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究·一篇说完
六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...
- [Unity3D]做个小Demo学习Input.touches
[Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https ...
- [译+改]最长回文子串(Longest Palindromic Substring) Part II
[译+改]最长回文子串(Longest Palindromic Substring) Part II 原文链接在http://leetcode.com/2011/11/longest-palindro ...
- 小计C/C++问题(1)
本文主要记录了以下2个问题: 表达式中,有符号变量和无符号变量的转化问题 C/C++中,main函数执行完以后,还执行了什么语句? 这里简单的说一下我的环境:Win7 32位,Qt creator 5 ...
- AFNetworking+Python+Flask+pyOpenSSL构建iOS HTTPS客户端&服务器端
对于HTTPS我在网上找了一堆资料看了下, 各种协议和证书已经有点晕了 最后我现有的感觉是, 在HTTP服务器上放一个证书, 在原本的HTTP访问之前客户端先检查证书是否正确 如果客户端证书检查正确, ...
- Mybatis中SqlMapper配置的扩展与应用(2)
三.子表删除兼容问题 这个问题,使用SQL配置函数不太好处理,而且就算使用SQL配置函数,也不够直观,有点自动生成SQL的意味,太Hibernate了(不过要是可以兼收Hibernate和Mybati ...
- 基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理
在很多系统模块里面,我们可能都需要进行一定的数据交换处理,也就是数据的导入或者导出操作,这样的批量处理能给系统用户更好的操作体验,也提高了用户录入数据的效率.我在较早时期的EasyUI的Web框架上, ...