GitHub入门与实践pdf免费版高清完整版

编辑点评:貌似的确国内没有类似的入门书籍。

包含GitHub的开发流程和辅助工具,GitHub入门与实践电子版适合需要引入GitHub的公司或团队直接使用,内容全面,系统讲解GitHub的功能和实用技巧,图文直观,一步步演示GitHub的使用方法,实战导向,专门搭建实践仓库,邀请读者进行Pull Request 并共同维护。

GitHub入门与实践pdf免费版

GitHub入门与实践pdf预览

内容简介

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

目录大全

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

1.1什么是GitHub2

GitHub公司与octocat2

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

GitHub的使用情况3

Column专栏:GitHub与Git的区别4

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

协作形式变化4

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

对特定用户进行评论6

GitHubFlavoredMarkdown7

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

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

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

1.3社会化编程9

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

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

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

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

1.5GitHub提供的主要功能12

Git仓库12

Organization12

Issue13

Wiki13

PullRequest13

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

1.6小结14

参考资料14

第2章Git的导入17

2.1诞生背景18

2.2什么是版本管理18

集中型与分散型19

集中型19

分散型19

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

2.3安装21

Mac与Linux21

Windows21

组件的选择22

设置环境变量22

换行符的处理23

GitBash23

本书所用的环境24

2.4初始设置24

设置姓名和邮箱地址24

提高命令输出的可读性25

2.5小结25

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

3.1使用前的准备28

创建账户28

设置头像29

设置SSHKey29

添加公开密钥30

使用社区功能31

3.2实际动手使用31

创建仓库31

Repositoryname32

Description32

Public、Private32

InitializethisrepositorywithaREADME32

Add.gitignore33

Addalicense33

连接仓库33

README.md33

GitHubFlavoredMarkdown34

公开代码34

clone已有仓库34

编写代码35

提交36

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

进行push37

3.3小结38

第4章通过实际操作学习Git39

4.1基本操作40

gitinit――初始化仓库40

gitstatus――查看仓库的状态40

gitadd――向暂存区中添加文件41

gitcommit――保存仓库的历史记录42

记述一行提交信息42

记述详细提交信息42

中止提交43

查看提交后的状态43

gitlog――查看提交日志43

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

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

显示文件的改动45

gitdiff――查看更改前后的差别45

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

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

4.2分支的操作47

gitbranch――显示分支一览表48

gitcheckout-b――创建、切换分支48

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

切换到master分支49

切换回上一个分支50

特性分支50

主干分支51

gitmerge――合并分支51

gitlog--graph――以图表形式查看分支52

4.3更改提交的操作53

gitreset――回溯历史版本53

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

创建fix-B分支54

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

消除冲突56

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

提交解决后的结果57

gitcommit--amend――修改提交信息58

gitrebase-i――压缩历史59

创建feature-C分支59

修正拼写错误60

更改历史61

合并至master分支63

4.4推送至远程仓库63

gitremoteadd――添加远程仓库64

gitpush――推送至远程仓库64

推送至master分支64

推送至master以外的分支65

4.5从远程仓库获取65

gitclone――获取远程仓库65

获取远程仓库65

获取远程的feature-D分支66

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

推送feature-D分支67

gitpull――获取最新的远程仓库分支67

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

ProGit68

LearnGitBranching69

tryGit69

4.7小结70

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

5.1键盘快捷键72

5.2工具栏73

关于UI73

1LOGO73

2Notifications73

3搜索窗口73

4Explore73

5Gist74

6Blog74

7Help74

8头像、用户名74

9Createanew74

Accountsettings75

Signout75

5.3控制面板75

关于UI75

①NewsFeed76

②PullRequests76

③Issues76

④Stars76

⑤Broadcast76

⑥Repositoriesyoucontributeto76

⑦YourRepositories76

5.4个人信息77

关于UI77

1用户信息77

2PopularRepositories78

3Repositoriescontributedto78

4Publiccontributions78

5ContributionActivity78

6Repositories78

7PublicActivity79

5.5仓库80

关于UI80

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

②Watch/Star/Fork80

③Code81

④Issue81

⑤PullRequests81

⑥Wiki82

⑦Pulse82

⑧Graphs82

⑨Network82

⑩Settings82

?SSHcloneURL82

?CloneinDesktop82

?DownloadZIP83

acommits83

bbranches83

creleases83

dcontributors83

eCompare&review83

fbranch83

gpath84

hForkthisprojectandCreateanewfile84

ifiles84

文件的相关操作84

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

查看差别85

查看分支间的差别85

查看与几天前的差别86

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

5.6Issue87

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

语法高亮89

添加图片90

添加标签以便整理90

添加里程碑以便管理91

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

Tasklist语法92

通过提交信息操作Issue93

在相关Issue中显示提交93

CloseIssue93

将特定的Issue转换为PullRequest94

5.7PullRequest94

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

Conversation96

Column专栏:引用评论96

Commits97

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

FilesChanged98

5.8Wiki99

Pages100

History101

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

5.9Pulse102

activepullrequests103

activeissue103

commits104

Releasespublished104

UnresolvedConversations104

5.10Graphs105

Contributors105

CommitActivity106

CodeFrequency106

Punchcard108

5.11Network108

5.12Settings109

Options109

①Settings109

②Features110

③GitHubPages111

④DangerZone111

Collaborators111

Webhooks&Services112

DeployKeys112

5.13Notifications112

5.14其他功能114

GitHubPages114

GitHubJobs114

GitHubEnterprise114

GitHubAPI115

5.15小结115

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

第6章尝试PullRequest117

6.1PullRequest的概要118

什么是PullRequest118

PullRequest的流程118

6.2发送PullRequest前的准备119

查看要修正的源代码120

Fork120

clone120

branch121

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

确认分支121

创建特性分支121

添加代码122

提交修改122

创建远程分支123

6.3发送PullRequest123

6.4让PullRequest更加有效的方法126

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

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

不进行Fork直接从分支发送PullRequest128

6.5仓库的维护128

仓库的Fork与clone129

给原仓库设置名称129

获取最新数据130

6.6小结130

第7章接收PullRequest131

7.1采纳PullRequest的方法132

7.2采纳PullRequest前的准备133

代码审查133

查看图片的差别134

2-up134

Swipe135

OnionSkin135

Difference136

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

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

获取发送方的远程仓库137

创建用于检查的分支138

合并138

删除分支139

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

7.3采纳PullRequest139

合并到主分支140

push修改内容141

7.4小结142

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

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

8.1hub命令144

概要144

安装144

安装145

确认运行情况145

设置别名145

实现shell上的功能补全146

~/.config/hub146

命令146

hubclone146

hubremoteadd147

hubfetch147

hubcherry-pick147

hubfork148

hubpull-request148

hubcheckout148

hubcreate149

hubpush149

hubbrowse150

hubcompare150

Column专栏:让GitHubEnterprise支持hub命令151

8.2TravisCI151

概要151

实际尝试152

编写配置文件152

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

与GitHub集成153

将TravisCI的结果添加至README.md155

8.3Coveralls156

概要156

安装157

注册157

添加对象仓库158

编写配置文件158

添加gem159

查看报告160

8.4Gemnasium160

8.5CodeClimate161

8.6Jenkins162

概要162

安装164

创建bot账户165

bot账户的权限设置165

对象为个人账户时165

对象为Organization账户时165

检查设置167

给Jenkins设置SSH密钥167

初次使用Jenkins时167

已经在使用Jenkins时168

GitHubpullrequestbuilderplugin的安装169

Gitplugin的设置170

GithubPullRequestsBuilder的设置170

GithubserverapiURL171

AccessToken171

Adminlist172

job的创建与设置172

GitHubproject172

源码管理172

构建触发器173

构建174

通知结果174

测试执行中的状态175

Failed175

Alliswell175

commitstatus175

通过评论进行控制176

执行任务176

添加至Whitelist176

重新执行任务176

变更指定评论177

8.7小结177

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

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

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

一切从简180

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

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

不Fork仓库的方法182

9.2GitHubFlow――以部署为中心的开发模式183

9.3GitHubFlow的流程184

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

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

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

定期push186

使用PullRequest187

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

合并后立刻部署187

9.4实践GitHubFlow的前提条件188

部署作业完全自动化188

使用部署工具189

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

导入开发时的注意事项190

重视测试190

让测试自动化190

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

维护测试代码190

9.5模拟体验GitHubFlow191

Fizzbuzz的说明191

添加新功能192

创建新的分支192

如果尚未clone仓库192

如果之前clone过仓库193

创建特性分支193

实现新功能194

创建PullRequest196

接收反馈196

修正缩进197

添加测试199

培育PullRequest202

PullRequest被合并202

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

减小PullRequest的体积204

准备可供试运行的环境204

不要让PullRequest中有太多反馈205

不要积攒PullRequest206

9.7GitHubFlow的小结206

9.8GitFlow――以发布为中心的开发模式207

便于理解的标准流程207

有时显得过于复杂209

9.9导入GitFlow前的准备209

安装git-flow209

Mac下的安装209

Linux下的安装210

确认运行状况210

仓库的初始设置210

创建仓库210

进行gitflow的初始设置211

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

9.10模拟体验GitFlow212

master分支与develop分支的区别213

master分支213

develop分支213

在feature中进行的工作213

创建分支214

在分支中进行作业215

发送PullRequest216

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

更新本地的develop分支219

在release分支中进行的工作220

Column专栏:设置默认分支220

创建分支221

分支内的工作222

进行发布与合并222

查看版本标签224

更新到远程仓库225

在hotfix分支中进行的工作226

创建分支226

创建标签和进行发布228

从hotfix分支合并至develop分支230

9.11GitFlow的小结232

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

第10章将GitHub应用到企业233

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

企业引入GitHub的好处234

使用Organization235

确认Github的安全性235

注意维护时间235

查看故障信息236

10.2GitHubEnterprise237

概述238

引入的好处238

引入的弊端239

适合引入GitHubEnterprise的几种情况239

源代码不可外传239

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

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

10.3能实现Git托管的软件241

Column专栏:Bitbucket241

10.4小结242

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

A.1GitHubforMac,GitHubforWindows244

A.2SourceTree246

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

B.1Gist的特点248

B.2创建Gist248

UI讲解249

1Gistdescription249

2namethisfile249

3language250

4ACEEditor250

5文件250

6AddanotherFile251

7CreateSecretGist251

8CreatePublicGist251

B.3查看Gist252

Gist的菜单252

①GistDetail253

②Revisions253

③DownloadGist253

④Clonethisgist253

⑤Embedthisgist253

⑥Linktothisgist253

文件的菜单254

B.4YourGists254

B.5小结255

内容试读

第 1 章:欢迎来到GitHub的世界 本章将为您讲解GitHub是什么,以及为什么全世界的开发者都在使用它。同时,还会带您一起考察GitHub为开源软件世界带来了怎样的变革。 1.1  什么是GitHub GitHub是为开发者提供Git仓库的托管服务。这是一个让开发者与朋友、同事、同学及陌生人共享代码的完美场所。 GitHub公司与octocat GitHub公司总部位于美国旧金山,拥有一只不知是..

GitHub 这一服务,为开源世界带来了社会化编程的概念。这一概念 影响了全世界众多程序员,说其是软件开发方法的一次革命都不为过。 在这里,我们将详细解说社会化编程的概念。 您听过 SOCIAL CODING(以下称为社会化编程)这个词吗?如果 没有,那么您见过图 1.7 的 LOGO 吗? 这是 GitHubA 曾经使用过的 LOGO。上面附带着 SOCIAL CODING 这一副标题。2013 年 4 月起,GitHub 开始使用图 1.8 中的 LOGO。 

图 1.7 GitHub曾经的LOGO 

图 1.8 GitHub 的新 LOGO 

GitHub 这一服务创造了社会化编程的概念。随着 GitHub 的出现, 软件开发者们才真正意义上拥有了源代码。世界上任何人都可以比从前 更加容易地获得源代码,将其自由更改并加以公开。如今,世界众多程 序员都在通过 GitHub 公开源代码,同时利用 GitHub 支持着自己日常的 软件开发。

在 GitHub 出现之前,软件开发中只有一小部分人拥有更改源代码 的权利,这个特权阶级掌握着开发的主导权。开发者在改写、发布源代码之外,往往需要花更多时间和精力去说服这个特权阶级。这导致了许多起初效率很高的流行软件越发保守化,最终被时代所抛弃。

但是,GitHub的出现为软件开发者的世界带来了真正意义上的“民主”,让所有人都平等地拥有了更改源代码的权利。这在软件开发领域是一场巨大的革命。而革命领导者GitHub的口号便是“社会化编程”。

接下来,我们将深入理解引发这场革命的社会化编程,同时为您讲解其原动力――GitHub这一服务的相关概要。GitHub各个功能将在第3章之后为您详细介绍。 

阅读剩余
THE END