Github代码管理教程
目录
- Create and use a repository
- Start and manage a new branch
- Make changes to a file and push them to GitHub as commits
- Open and merge a pull request
What is GitHub?
Github是一个代码托管平台。
本教程将向您介绍GitHub的基本功能,如存储库、分支、提交和拉取请求。您将创建自己的hello world存储库,并学习github的pull-request工作流,这是一种创建和审查代码的流行方法。
无需编码
要完成本教程,您需要github.com帐户和Internet访问。您不需要知道如何编写代码、使用命令行或安装git(版本控制软件github是基于此构建的)。
提示:请在单独的浏览器窗口(或选项卡)中打开此指南,以便在完成教程中的步骤时可以看到它。
第一步:创建仓库(repository)
存储库通常用于组织单个项目。存储库可以包含文件夹和文件、图像、视频、电子表格和数据集—任何项目需要的内容。我们建议包括一个自述文件,或者一个包含项目信息的文件。github使您可以在创建新存储库的同时轻松添加一个存储库。它还提供其他常见选项,如许可证文件。
hello world存储库可以是一个存储想法、资源,甚至与他人共享和讨论内容的地方。
创建新存储库
1.在右上角,在您的头像或标识图标旁边,单击,然后选择New Repository。
2.命名存储库hello world。
3.写一个简短的描述。
4.选择“使用自述文件初始化此存储库”。
第二步:创建一个分支(branch)
分支是一次处理不同版本存储库的方法。
默认情况下,存储库有一个名为master的分支,该分支被视为最终分支。在将分支提交给master之前,我们使用分支进行实验和编辑。
当您在主分支上创建分支时,您正在按主分支在该时间点上的状态创建主分支的副本或快照。如果其他人在您处理分支时对主分支进行了更改,您可以将这些更新拉入。
下图显示:
•主分支
•一个名为Feature的新分支(因为我们正在对该分支进行“功能工作”)
•功能在融入主功能之前所经历的旅程

你保存过不同版本的文件吗?类似于:
- story.txt
- story-joe-edit.txt文件
- story-joe-edit-reviewed.txt文件
分支在github存储库中实现类似的目标。
在github,我们的开发人员、作者和设计师使用分支来保持bug修复和功能工作与我们的主(生产)分支分离。当变化准备好时,他们将分支合并为master。
创建新分支
1.去你的新仓库Hello World。
2.单击文件列表顶部的下拉列表,其中显示branch:master。
3.在“新建分支”文本框中键入分支名称“自述编辑”。
4.选择蓝色的创建分支框或按键盘上的“回车”键。

现在有两个分支,master和readme编辑。它们看起来一模一样,但不会太久!下一步我们将把我们的更改添加到新的分支。
第三步:更改和提交更改
好极了!现在,您进入了readme edits分支的代码视图,它是master的副本。让我们做些编辑。
在github上,保存的更改称为提交(commit)。每个提交都有一个关联的提交消息,这是一个说明,解释为什么进行了特定更改。提交消息捕获更改的历史记录,以便其他贡献者能够理解您所做的操作以及原因。
更改和提交更改
1.单击readme.md文件。
2.单击文件视图右上角的铅笔图标进行编辑。
3.在编辑器中,写一点关于你自己的东西。
4.编写一条说明更改的提交消息。
5.单击“提交更改”按钮。

这些更改将仅对“自述编辑”分支上的自述文件进行,因此现在此分支包含与“主控”不同的内容。
第四步:打开拉取请求
很好的编辑!现在您已经更改了master的分支,可以打开一个pull请求。
拉取请求是github上协作的核心。当您打开一个请求时,您提出了您的更改,并请求有人检查和拉入您的贡献并将其合并到他们的分支中。拉取请求显示来自两个分支的内容的差异。更改、添加和减法显示为绿色和红色。
一旦提交,就可以打开请求并开始讨论,甚至在代码完成之前。
通过在pull请求消息中使用github的@notice系统,您可以请求特定人员或团队的反馈,无论他们是在大厅下面还是10个时区之外。
您甚至可以在自己的存储库中打开pull请求并自己合并它们。在处理更大的项目之前,这是学习github流的好方法。
打开请求更改自述文件
点击图片查看更大版本
1. 单击“拉取请求”选项卡,然后在“拉取请求”页面中,单击绿色的“新建拉取请求”按钮。:

2. 在“示例比较”框中,选择要与主控形状(原始形状)进行比较的分支“自述编辑”。

3. 查看比较页上差异中的更改,确保它们是您要提交的内容。

4. 当您确信这些是要提交的更改时,请单击绿色的“创建请求”按钮。

5. 给你的请求一个标题,并写一个简短的变更描述。

完成信息后,单击“创建拉取请求”!
提示:您可以使用emoji并将图像和gif拖放到评论和请求中。
第五步:合并拉取请求
在最后一步中,是时候将您的更改合并到一起了——将您的自述编辑分支合并到主分支中。
1.单击绿色的合并请求按钮,将更改合并到主控形状。
2.单击“确认合并”。
3.继续删除分支,因为它的更改已经合并,紫色框中有delete branch按钮。


庆祝一下!
通过完成本教程,您已经学会了在github上创建项目和发出请求!
以下是您在本教程中完成的内容:
•创建了一个开源存储库
•开办和管理一个新的分支机构
•更改了一个文件并将这些更改提交给github
•打开并合并拉取请求
看看你的github档案,你会看到你的新贡献广场!
要了解pull请求的强大功能,我们建议阅读github流指南。您还可以访问github explore并参与一个开源项目。
____________________
提示:查看我们的其他指南、youtube频道和点播培训,了解更多关于如何开始使用github的信息。
上次更新时间:2016年4月7日
Github代码管理教程的更多相关文章
- 使用Git操作GitHub代码入门教程
GitHub除了网页操作外,还可以借助本地客户端git(或github for windows)来增删修改远程代码.使用Git操作来连接GitHub可以通过Https或SSH方式,使用SSH方式可以免 ...
- 如何把本地代码提交到git(码云)、github代码管理项目上
前提必须安装了git工具 以下命令操作都是通过git bash操作. 将本地代码提交到码云空项目操作: D:\>mkdir inek_winprop D:\>cd inek_winprop ...
- 关于github 代码管理,协作开发
公司要用github 进行项目管理, 了解了一下github相关权限管理. 并做笔记如下: 个人账户可以建立公有/私有 repository , 公有的全天下的人都能看到,私有的全天下人都看不到 ...
- github代码管理工具的使用方法
一.创建一个存储库 1.点击页面右上方你的用户名右边的+标志,然后点击下拉列表中的"new repository"选项,一般填写项目名称和选择public 和选择初始化有READM ...
- 使用Git进行代码管理的心得--github for windows
首先简述一下Git进行代码管理的情况 我使用的是github for windows,官网下载的速度太慢,所以用了离线安装包.安装之后会有GitHub和GitShell两个软件,其中Github采用图 ...
- msysGit管理GitHub代码
msysGit管理GitHub代码 代码的管理,在日常开发中是很重要的环节,程序员的修炼三部曲——版本控制,单元测试,项目自动化. 本篇就简单的说说通过msysGit来管理GitHub中的代码,实 ...
- 软工实践个人练习-使用github进行代码管理
1.掌握使用Git进行代码版本,使用github进行代码托管. 2.创建小组Organization,并邀请组员进来. 3.将代码库https://github.com/sefzu2015/AutoC ...
- 代码管理工具:使用github和git工具管理自己的代码
一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系 ...
- 程序员的自我修养系列(一):优雅的代码管理工具之GitHub
1.导言 代码管理是程序员经常遇到一个问题,很多童鞋将代码保存到本地硬盘,此种方法管理混乱,也存在代码丢失的风险,且版本无法控制,因此养成良好的代码管理习惯是程序员的必修课.在众多代码管理工具中笔者在 ...
随机推荐
- C变量
C 变量 变量其实只不过是程序可操作的存储区的名称.C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上. 变量的名称可以由字母.数字和下 ...
- Oracle with as语法
with as优点 增加了sql的易读性,如果构造了多个子查询,结构会更清晰: 更重要的是:“一次分析,多次使用”,这也是为什么会提供性能的地方,达到了“少读”的目标 用法:给查询的语句起个别名 e. ...
- String StringBuffer BufferBuilder区别
String 是一个字符串常量,即该对象一旦被创建之后是不可以进行更改的 StringBuffer StringBuilder 是一个字符串变量 StringBuffer 是非线程安全的 但是Stri ...
- shell从字符串中提取子串(正则表达式)
通过试验,可以通过grep.sed两种方式实现. 假设需要提取libgcc-4.8.5-4.h5.x86_64.rpm中的版本号. grep echo "libgcc-4.8.5-4.h5. ...
- java中 抽象类和接口的区别
一. 什么是抽象类及什么是抽象方法 抽象方法是一种特殊的方法:他只有声明,而没有具体实现,抽象方法的声明格式为: abstract void funName(); 抽象方法必须用 abstract 修 ...
- USB3.0 对 2.4G WiFi 影响
Intel的一篇白皮书<USB 3.0 Radio Frequency Interference Impact on 2.4 GHz Wireless Devices>中即清楚地指出,US ...
- MVC路由解析---MapRoute
文章引导 MVC路由解析---IgnoreRoute MVC路由解析---MapRoute MVC路由解析---UrlRoutingModule Area的使用 引言 前面我们讲了IgnoreRout ...
- CFile CStdioFile CArchive 文件操作之异同(详细)
两者的主要区别: 一. CFile类操作文件默认的是Binary模式,CStdioFile类操作文件默认的是Text模式. 在Binary模式下我们必须输入'\r\n',才能起到回车换行的效果, ...
- 基于MFC的Media Player播放器的制作(4---功能实现代码)
| 版权声明:本文为博主原创文章,未经博主允许不得转载. PandaPlayerDlg.h // PandaPlayerDlg.h : header file // //{{AFX_INCLUDE ...
- 使用 C++ 编写的基础 Windows 服务 (CppWindowsService)
最近项目中涉及到使用C++写一个后台服务程序,找了很多资料,还是使用Google搜索找到了比较详细点的资料,就是从微软官方MSDN的例子,如下: 使用 C++ 编写的基础 Windows 服务 (Cp ...