GitHub入门与实践pdf

图书网 2018年8月30日09:00:13
评论
1.8K

与全世界程序员分享你的代码!

1.代码审查不到位,审查效率低下

2.只有编程者本人能看懂的代码直接被部署至正式环境中

3.因低级代码错误导致BUG频繁出现

4.没有机会和其他人互相交流代码,共享知识

没有一个简单高效、能在一天之内添加多个功能的开发流程

GitHub 为我们提供了解决这些问题的机会和功能。

本书旨在指导读者使用GitHub进行高效开发。

1.内容全面,系统讲解GitHub的功能和实用技巧

2.图文直观,一步步演示GitHub的使用方法

3.实战导向,专门搭建实践仓库,邀请读者进行Pull Request 并共同维护

4.包含GitHub的开发流程和辅助工具,适合需要引入GitHub的公司或团队直接使用

GitHub入门与实践 内容简介

《GitHub入门与实践》从Git的基本知识和操作方法入手,详细介绍了GitHub的各种功能,GitHub与其他工具或服务的协作,使用GitHub的开发流程以及如何将GitHub引入到企业中。在讲解GitHub的代表功能Pull Request时,本书专门搭建了供各位读者实践的仓库,邀请各位读者进行Pull Request并共同维护。

《GitHub入门与实践》旨在指导各位读者如何在开发现场使用GitHub进行高效开发,适合所有想要使用GitHub进行开发的程序员或团队阅读。

GitHub入门与实践 目录

第1章 欢迎来到GitHub的世界  1

1.1 什么是GitHub  2

GitHub公司与octocat  2

并不只是Git仓库的托管服务  3

GitHub的使用情况  3

Column 专栏:GitHub与Git的区别  4

1.2 使用GitHub会带来哪些变化  4

协作形式变化  4

在开发者之间引发化学反应的Pull Request  5

对特定用户进行评论  6

GitHub Flavored Markdown  7

Column 专栏:还可以这样写!!  7

能看到更多其他团队的软件  7

与开源软件相同的开发模式  8

1.3 社会化编程  9

1.4 为什么需要社会化编程  10

不要闭目塞听,要接触不同的文化  10

会写代码的程序员更受青睐  11

GitHub最大的特征是“面向人”  11

1.5 GitHub提供的主要功能  12

Git仓库  12

Organization  12

Issue  13

Wiki  13

Pull Request  13

Column 专栏:GitHub上受到瞩目的软件  14

1.6 小结  14

参考资料  14

第2章 Git的导入  17

2.1 诞生背景  18

2.2 什么是版本管理  18

集中型与分散型  19

集中型  19

分散型  19

集中型与分散型哪个更好  20

2.3 安装  21

Mac与Linux  21

Windows  21

组件的选择  22

设置环境变量  22

换行符的处理  23

Git Bash  23

本书所用的环境  24

2.4 初始设置  24

设置姓名和邮箱地址  24

提高命令输出的可读性  25

2.5 小结  25

第3章 使用GitHub的前期准备  27

3.1 使用前的准备  28

创建账户  28

设置头像  29

设置SSH Key  29

添加公开密钥  30

使用社区功能  31

3.2 实际动手使用  31

创建仓库  31

Repository name  32

Description  32

Public、Private  32

Initialize this repository with a README  32

Add .gitignore  33

Add a license  33

连接仓库  33

README.md  33

GitHub Flavored Markdown  34

公开代码  34

clone已有仓库  34

编写代码  35

提交  36

Column 专栏:公开时的许可协议  37

进行push  37

3.3 小结  38

第4章 通过实际操作学习Git  39

4.1 基本操作  40

git init——初始化仓库  40

git status——查看仓库的状态  40

git add——向暂存区中添加文件  41

git commit——保存仓库的历史记录  42

记述一行提交信息  42

记述详细提交信息  42

中止提交  43

查看提交后的状态  43

git log——查看提交日志  43

只显示提交信息的第一行  44

只显示指定目录、文件的日志  44

显示文件的改动  45

git diff——查看更改前后的差别  45

查看工作树和暂存区的差别  45

查看工作树和最新提交的差别  46

4.2 分支的操作  47

git branch——显示分支一览表  48

git checkout -b——创建、切换分支  48

切换到feature-A分支并进行提交  48

切换到master分支  49

切换回上一个分支  50

特性分支  50

主干分支  51

git merge——合并分支  51

git log --graph——以图表形式查看分支  52

4.3 更改提交的操作  53

git reset——回溯历史版本  53

回溯到创建feature-A分支前  53

创建fix-B分支  54

推进至feature-A分支合并后的状态  55

消除冲突  56

查看冲突部分并将其解决  57

提交解决后的结果  57

git commit --amend——修改提交信息  58

git rebase -i——压缩历史  59

创建feature-C分支  59

修正拼写错误  60

更改历史  61

合并至master分支  63

4.4 推送至远程仓库  63

git remote add——添加远程仓库  64

git push——推送至远程仓库  64

推送至master分支  64

推送至master以外的分支  65

4.5 从远程仓库获取  65

git clone——获取远程仓库  65

获取远程仓库  65

获取远程的feature-D分支  66

向本地的feature-D分支提交更改  67

推送feature-D分支  67

git pull——获取最新的远程仓库分支  67

4.6 帮助大家深入理解Git的资料  68

Pro Git  68

LearnGitBranching  69

tryGit  69

4.7 小结  70

第5章 详细解说GitHub的功能  71

5.1 键盘快捷键  72

5.2 工具栏  73

关于UI  73

1LOGO  73

2Notifications  73

3 搜索窗口  73

4Explore  73

5Gist  74

6Blog  74

7Help  74

8 头像、用户名  74

9 Create a new  74

Account settings  75

Sign out  75

5.3 控制面板  75

关于UI  75

①News Feed  76

②Pull Requests  76

③Issues  76

④Stars  76

⑤Broadcast  76

⑥Repositories you contribute to  76

⑦Your Repositories  76

5.4 个人信息  77

关于UI  77

1 用户信息  77

2Popular Repositories  78

3Repositories contributed to  78

4Public contributions  78

5Contribution Activity  78

6Repositories  78

7Public Activity  79

5.5 仓库  80

关于UI  80

①用户名(组织名)/仓库名  80

②Watch/Star/Fork  80

③Code  81

④Issue  81

⑤Pull Requests  81

⑥Wiki  82

⑦Pulse  82

⑧Graphs  82

⑨Network  82

⑩Settings  82

⑪SSH clone URL  82

⑫Clone in Desktop  82

⑬Download ZIP  83

acommits  83

bbranches  83

creleases  83

dcontributors  83

eCompare & review  83

fbranch  83

gpath  84

hFork this project and Create a new file  84

ifiles  84

文件的相关操作  84

Column专栏:通过部分名称搜索文件  85

查看差别  85

查看分支间的差别  85

查看与几天前的差别  86

查看与指定日期之间的差别  87

5.6 Issue  87

简洁且表现力丰富的描述方法  88

语法高亮  89

添加图片  90

添加标签以便整理  90

添加里程碑以便管理  91

Column 专栏:了解贡献时的规则!  92

Tasklist语法  92

通过提交信息操作Issue  93

在相关Issue中显示提交  93

Close Issue  93

将特定的Issue转换为Pull Request  94

5.7 Pull Request  94

Column 专栏:获取diff格式与patch格式的文件  96

Conversation  96

Column 专栏:引用评论  96

Commits  97

Column 专栏:在评论中应用表情  98

Files Changed  98

5.8 Wiki  99

Pages  100

History  101

Column 专栏:在Wiki中显示侧边栏  101

5.9 Pulse  102

active pull requests  103

active issue  103

commits  104

Releases published  104

Unresolved Conversations  104

5.10 Graphs  105

Contributors  105

Commit Activity  106

Code Frequency  106

Punchcard  108

5.11 Network  108

5.12 Settings  109

Options  109

①Settings  109

②Features  110

③GitHub Pages  111

④Danger Zone  111

Collaborators  111

Webhooks & Services  112

Deploy Keys  112

5.13 Notifications  112

5.14 其他功能  114

GitHub Pages  114

GitHub Jobs  114

GitHub Enterprise  114

GitHub API  115

5.15 小结  115

Column 专栏:在Mac的通知中心查看GitHub的Notifications  115

第6章 尝试Pull Request  117

6.1 Pull Request的概要  118

什么是Pull Request  118

Pull Request的流程  118

6.2 发送Pull Request前的准备  119

查看要修正的源代码  120

Fork  120

clone  120

branch  121

为何要在特性分支中进行作业  121

确认分支  121

创建特性分支  121

添加代码  122

提交修改  122

创建远程分支  123

6.3 发送Pull Request  123

6.4 让Pull Request更加有效的方法  126

在开发过程中发送Pull Request进行讨论  126

明确标出“正在开发过程中”  127

不进行Fork直接从分支发送Pull Request  128

6.5 仓库的维护  128

仓库的Fork与clone  129

给原仓库设置名称  129

获取最新数据  130

6.6 小结  130

第7章 接收Pull Request  131

7.1 采纳Pull Request的方法  132

7.2 采纳Pull Request前的准备  133

代码审查  133

查看图片的差别  134

2-up  134

Swipe  135

Onion Skin  135

Difference  136

在本地开发环境中反映Pull Request的内容  136

将接收方的本地仓库更新至最新状态  136

获取发送方的远程仓库  137

创建用于检查的分支  138

合并  138

删除分支  139

Column 专栏:如何提升代码管理技术  139

7.3 采纳Pull Request  139

合并到主分支  140

push修改内容  141

7.4 小结  142

Column 专栏:请协助我们共同创建互相学习的场所  142

第8章 与GitHub相互协作的工具及服务  143

8.1 hub命令  144

概要  144

安装  144

安装  145

确认运行情况  145

设置别名  145

实现shell上的功能补全  146

~/.config/hub  146

命令  146

hub clone  146

hub remote add  147

hub fetch  147

hub cherry-pick  147

hub fork  148

hub pull-request  148

hub checkout  148

hub create  149

hub push  149

hub browse  150

hub compare  150

Column 专栏:让GitHub Enterprise支持hub命令  151

8.2 Travis CI  151

概要  151

实际尝试  152

编写配置文件  152

检测配置文件是否有问题  152

与GitHub集成  153

将Travis CI的结果添加至README.md  155

8.3 Coveralls  156

概要  156

安装  157

注册  157

添加对象仓库  158

编写配置文件  158

添加gem  159

查看报告  160

8.4 Gemnasium  160

8.5 Code Climate  161

8.6 Jenkins  162

概要  162

安装  164

创建bot账户  165

bot账户的权限设置  165

对象为个人账户时  165

对象为Organization账户时  165

检查设置  167

给Jenkins设置SSH密钥  167

初次使用Jenkins时  167

已经在使用Jenkins时  168

GitHub pull request builder plugin的安装  169

Git plugin的设置  170

Github Pull Requests Builder的设置  170

Github server api URL  171

Access Token  171

Admin list  172

job的创建与设置  172

GitHub project  172

源码管理  172

构建触发器  173

构建  174

通知结果  174

测试执行中的状态  175

Failed  175

All is well  175

commit status  175

通过评论进行控制  176

执行任务  176

添加至White list  176

重新执行任务  176

变更指定评论  177

8.7 小结  177

Column 专栏:用Coderwall生成GitHub上的个人信息  178

第9章 使用GitHub的开发流程  179

9.1 团队使用GitHub时的注意事项  180

一切从简  180

项目管理工具与GitHub的区别  180

项目管理工具与GitHub相异的原因  181

不Fork仓库的方法  182

9.2 GitHub Flow——以部署为中心的开发模式  183

9.3 GitHub Flow的流程  184

随时部署,没有发布的概念  184

进行新的作业时要从master分支创建新分支  185

在新创建的分支中进行提交  186

定期push  186

使用Pull Request  187

务必让其他开发者进行审查  187

合并后立刻部署  187

9.4 实践GitHub Flow的前提条件  188

部署作业完全自动化  188

使用部署工具  189

通过Web界面进行部署的工具  189

导入开发时的注意事项  190

重视测试  190

让测试自动化  190

编写测试代码,通过全部测试  190

维护测试代码  190

9.5 模拟体验GitHub Flow  191

Fizzbuzz的说明  191

添加新功能  192

创建新的分支  192

如果尚未clone仓库  192

如果之前clone过仓库  193

创建特性分支  193

实现新功能  194

创建Pull Request  196

接收反馈  196

修正缩进  197

添加测试  199

培育Pull Request  202

Pull Request被合并  202

9.6 团队实践GitHub Flow时的几点建议  203

减小Pull Request的体积  204

准备可供试运行的环境  204

不要让Pull Request中有太多反馈  205

不要积攒Pull Request  206

9.7 GitHub Flow的小结  206

9.8 Git Flow——以发布为中心的开发模式  207

便于理解的标准流程  207

有时显得过于复杂  209

9.9 导入Git Flow前的准备  209

安装git-flow  209

Mac下的安装  209

Linux下的安装  210

确认运行状况  210

仓库的初始设置  210

创建仓库  210

进行git flow的初始设置  211

在远程仓库中也创建develop分支  212

9.10 模拟体验Git Flow  212

master分支与develop分支的区别  213

master分支  213

develop分支  213

在feature中进行的工作  213

创建分支  214

在分支中进行作业  215

发送Pull Request  216

通过代码审查提高代码质量  217

更新本地的develop分支  219

在release分支中进行的工作  220

Column 专栏:设置默认分支  220

创建分支  221

分支内的工作  222

进行发布与合并  222

查看版本标签  224

更新到远程仓库  225

在hotfix分支中进行的工作  226

创建分支  226

创建标签和进行发布  228

从hotfix分支合并至develop分支  230

9.11 Git Flow的小结  232

Column 专栏:版本号的分配规则  232

第10章 将GitHub应用到企业  233

10.1 将世界标准的开发环境引入企业现场  234

企业引入GitHub的好处  234

使用Organization  235

确认Github的安全性  235

注意维护时间  235

查看故障信息  236

10.2 GitHub Enterprise  237

概述  238

引入的好处  238

引入的弊端  239

适合引入GitHub Enterprise的几种情况  239

源代码不可外传  239

Column 专栏:将GitHub的仓库作为Subversion仓库使用  240

希望维护与故障时间可控  240

10.3 能实现Git托管的软件  241

Column 专栏:Bitbucket  241

10.4 小结  242

附录A 支持GitHub的GUI客户端  243

A.1 GitHub for Mac,GitHub for Windows  244

A.2 SourceTree  246

附录B 通过Gist轻松实现代码共享  247

B.1 Gist的特点  248

B.2 创建Gist  248

UI讲解  249

1 Gist description  249

2 name this file    249

3 language  250

4 ACE Editor   250

5 文件  250

6 Add another File  251

7 Create Secret Gist  251

8 Create Public Gist  251

B.3 查看Gist  252

Gist 的菜单  252

①Gist Detail  253

②Revisions  253

③Download Gist  253

④Clone this gist  253

⑤Embed this gist  253

⑥Link to this gist   253

文件的菜单   254

B.4 Your Gists   254

B.5 小结  255

GitHub入门与实践 精彩文摘

GitHub的出现已使当今世界的软件开发现场发生了翻天覆地的变化。在这场可称之为革命的变革当中,中国也毫不例外地受到了影响。本章中,我们将简单介绍将GitHub导入日常开发后会带来哪些变化,供尚未正式使用GitHub的开发者们加以了解。

协作形式变化

此前,用于辅助多人协同工作的软件层出不穷,然而它们中的大部分又一个个退出了历史的舞台。在这类软件中,群件(Groupware)和CRM(Customer Relationship Management,顾客关系管理)等脱颖而出,被全世界的商业人士所用。您所在的公司想必也导入了这类软件。

但是,在以程序员为代表的软件开发者之间,一直都没有一个用来辅助多人协同编程的关键性软件。因此软件开发者们往往要将版本管理系统、BUG跟踪系统、代码审查工具、邮件列表、IRC等众多工具组合在一起,以实现多人协作。

开发者们已对这种软件开发协作模式司空见惯,然而GitHub的出现为其带来了巨大变化。下面,我们就来介绍GitHub的几项功能。

在开发者之间引发化学反应的Pull Request

在GitHub这个聚集了世界各地软件开发者的地方,有个在过去绝对是无法想象的事正在飞速地进行着——素未谋面的开发者们隔着半个地球的距离共同开发软件。我们不妨称之为开发者之间的化学反应吧。这种事成为可能,都要归功于一个名为Pull Request的功能(图1.3)。

图1.3 Pull Request的页面

Pull Request是指开发者在本地对源代码进行更改后,向GitHub中托管的Git仓库请求合并的功能。开发者可以在Pull Request上通过评论交流,例如“修正了BUG,可以合并一下吗?”以及“我试着做了这样一个新功能,可以合并一下吗?”等。通过这个功能,开发者可以轻松更改源代码,并公开更改的细节,然后向仓库提交合并请求。而且,如果请求的更改与项目的初衷相违,也可以选择拒绝合并。

GitHub的Pull Request不但能轻松查看源代码的前后差别,还可以对指定的一行代码进行评论(图1.4)。通过这一功能,开发者们可以针对具体的代码进行讨论,使代码审查的工作变得前所未有地惬意。

图1.4 针对某行代码进行评论的实际截图

对特定用户进行评论

方便和快捷并不是Pull Request的专利。任务管理和BUG报告可以通过Issue进行交互。如果想让特定用户来看,只要用“@用户名”的格式书写,对方便会接到通知(Notifications)A,查看Issue(图1.5)。由于也提供了Wiki功能,开发者可以轻松创建文档,进行公开、共享。Wiki更新的历史记录也在Git中管理,可以让用户轻松更改。

图书网:GitHub入门与实践pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

软件工程/开发项目管理

软件设计重构pdf

以4个设计原则为中心,全面呈现25种在软件项目中导致技术债务的设计坏味 提供一种独特的坏味命名方法,帮助理解坏味的由来并指出潜在重构方法 包含丰富的例证,展现糟糕设计实践的潜在坏味...
软件工程/开发项目管理

DevOps 最佳实践pdf

DevOps 最佳实践 作者: Bart de Best(巴特・德・贝斯特) DevOps 最佳实践 出版社:电子工业出版社 DevOps 最佳实践 内容简介 近年来,许多组织都体会到了使用敏捷方法的...
软件工程/开发项目管理

Android组件化架构pdf

Android走过的十个年头,其技术演进也是有迹可循的,本书作者基于自己在大型App架构的技术演进中成长的经历,将遇到的相关问题进行深入剖析,包括Android 组件化架构、模块化...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: