GitHub入门与实践
本书结构
1 欢迎来到GitHub的世界
1.1 什么是 GitHub
GitHub 公司与 octocat
并不只是 Git 仓库的托管服务
GitHub 的使用情况
1.2 使用 GitHub 会带来哪些变化
协作形式变化
……在开发者之间引发化学反应的 Pull Request
……对特定用户进行评论
……GitHub Flavored Markdown
能看到更多其他团队的软件
与开源软件相同的开发模式
1.3 社会化编程
1.4 为什么需要社会化编程
不要闭目塞听,要接触不同的文化
会写代码的程序员更受青睐
GitHub 最大的特征是“面向人”
1.5 GitHub 提供的主要功能
Git 仓库
Organization
Issue
Wiki
Pull Request
1.6 小结
参考资料
2 Git的导入
2.1 诞生背景
2.2 什么是版本管理
集中型与分散型
……集中型
……分散型
集中型与分散型哪个更好
2.3 安装
Mac 与 Linux
Windows
……组件的选择
……设置环境变量
……换行符的处理
……Git Bash
本书所用的环境
2.4 初始设置
设置姓名和邮箱地址
提高命令输出的可读性
2.5 小结
3 使用GitHub的前期准备
3.1 使用前的准备
创建账户
设置头像
设置 SSH Key
添加公开密钥
使用社区功能
3.2 实际动手使用
创建仓库
……Repository name
……Description
……Public、Private
……Initialize this repository with a README
……Add .gitignore
……Add a license
连接仓库
……README.md
……GitHub Flavored Markdown
公开代码
……clone 已有仓库
……编写代码
……提交
……进行 push
3.3 小结
4 通过实际操作学习Git
4.1 基本操作
git init——初始化仓库
git status——查看仓库的状态
git add——向暂存区中添加文件
git commit——保存仓库的历史记录
……记述一行提交信息
……记述详细提交信息
……中止提交
……查看提交后的状态
git log——查看提交日志
……只显示提交信息的第一行
……只显示指定目录、文件的日志
……显示文件的改动
git diff——查看更改前后的差别
……查看工作树和暂存区的差别
……查看工作树和最新提交的差别
4.2 分支的操作
git branch——显示分支一览表
git checkout -b——创建、切换分支
……切换到 feature-A 分支并进行提交
……切换到 master 分支
……切换回上一个分支
特性分支
主干分支
git merge——合并分支
git log --graph——以图表形式查看分支
4.3 更改提交的操作
git reset——回溯历史版本
……回溯到创建 feature-A 分支前
……创建 fix-B 分支
……推进至 feature-A 分支合并后的状态
消除冲突
……查看冲突部分并将其解决
……提交解决后的结果
git commit --amend——修改提交信息
git rebase -i——压缩历史
……创建 feature-C 分支
……修正拼写错误
……更改历史
……合并至 master 分支
4.4 推送至远程仓库
git remote add——添加远程仓库
git push——推送至远程仓库
……推送至 master 分支
……推送至 master 以外的分支
4.5 从远程仓库获取
git clone——获取远程仓库
……获取远程仓库
……获取远程的 feature-D 分支
……向本地的 feature-D 分支提交更改
……推送 feature-D 分支
git pull——获取最新的远程仓库分支
4.6 帮助大家深入理解 Git 的资料
Pro Git
LearnGitBranching
tryGit
4.7 小结
5 详细解说GitHub的功能
5.1 键盘快捷键
5.2 工具栏
关于 UI
……1 LOGO
……2 Notifications
……3搜索窗口
……4 Explore
……5 Gist
……6 Blog
……7 Help
……8头像、用户名
……9 Create a new...
……10 Account settings
……11 Sign out
5.3 控制面板
关于 UI
……1 News Feed
……2 Pull Requests
……3 Issues
……4 Stars
……5 Broadcast
……6 Repositories you contribute to
……7 Your Repositories
5.4 个人信息
关于 UI
……1用户信息
……2 Popular Repositories
……3 Repositories contributed to
……4 Public contributions
……5 Contribution Activity
……6 Repositories
……7 Public Activity
5.5 仓库
关于 UI
……1用户名(组织名)/仓库名
……2 Watch/Star/Fork
……3 Code
……4 Issue
……5 Pull Requests
……6 Wiki
……7 Pulse
……8 Graphs
……9 Network
……10 Settings
……11 SSH clone URL
……12 Clone in Desktop
……13 Download ZIP
……a commits
……b branches
……c releases
……d contributors
……e Compare and review
……f branch
……g path
……h Fork this project and Create a new file
……i files
文件的相关操作
查看差别
……查看分支间的差别
……查看与几天前的差别
……查看与指定日期之间的差别
5.6 Issue
简洁且表现力丰富的描述方法
……语法高亮
……添加图片
添加标签以便整理
添加里程碑以便管理
Tasklist 语法
通过提交信息操作 Issue
……在相关 Issue 中显示提交
……Close Issue
将特定的 Issue 转换为 Pull Request
5.7 Pull Request
Conversation
Commits
Files Changed
5.8 Wiki
Pages
History
5.9 Pulse
active pull requests
active issue
commits
Releases published
Unresolved Conversations
5.10 Graphs
Contributors
Commit Activity
Punchcard
5.11 Network
5.12 Settings
Options
……1 Settings
……2 Features
……3 GitHub Pages
……4 Danger Zone
Collaborators
Webhooks and Services
Deploy Keys
5.13 Notifications
5.14 其他功能
GitHub Pages
GitHub Jobs
GitHub Enterprise
GitHub API
5.15 小结
6 尝试Pull Request
6.1 Pull Request 的概要
什么是 Pull Request
Pull Request 的流程
6.2 发送 Pull Request 前的准备
查看要修正的源代码
Fork
clone
branch
……为何要在特性分支中进行作业
……确认分支
……创建特性分支
添加代码
提交修改
创建远程分支
6.3 发送 Pull Request
6.4 让 Pull Request 更加有效的方法
在开发过程中发送 Pull Request 进行讨论
明确标出“正在开发过程中”
不进行 Fork 直接从分支发送 Pull Request
6.5 仓库的维护
仓库的 Fork 与 clone
给原仓库设置名称
获取最新数据
6.6 小结
7 接收Pull Request
7.1 采纳 Pull Request 的方法
7.2 采纳 Pull Request 前的准备
代码审查
查看图片的差别
……2-up
……Swipe
……Onion Skin
……Difference4
在本地开发环境中反映 Pull Request 的内容
……将接收方的本地仓库更新至最新状态
……获取发送方的远程仓库
……创建用于检查的分支
……合并
……删除分支
7.3 采纳 Pull Request
合并到主分支
push 修改内容
7.4 小结
8 与GitHub相互协作的工具及服务
8.1 hub 命令
概要
安装
……安装
……确认运行情况
……设置别名
……实现 shell 上的功能补全
……~/.config/hub
命令
……hub clone
……hub remote add
……hub fetch
……hub cherry-pick
……hub fork
……hub pull-request
……hub checkout
……hub create
……hub push
……hub browse
……hub compare
8.2 Travis CI
概要
实际尝试
……编写配置文件
……检测配置文件是否有问题
……与 GitHub 集成
……将 Travis CI 的结果添加至 README.md
8.3 Coveralls
概要
安装
……注册
……添加对象仓库
……编写配置文件
……添加 gem
……查看报告
8.4 Gemnasium
8.5 Code Climate
8.6 Jenkins
概要
安装
创建 bot 账户
bot 账户的权限设置
……对象为个人账户时
……对象为 Organization 账户时
……检查设置
给 Jenkins 设置 SSH 密钥
……初次使用 Jenkins 时
……已经在使用 Jenkins 时
GitHub pull request builder plugin 的安装
Git plugin 的设置
Github Pull Requests Builder 的设置
……Github server api URL
……Access Token
……Admin list
job 的创建与设置
……GitHub project
……源码管理
……构建触发器
……构建
通知结果
……测试执行中的状态
……Failed
……All is well
……commit status
通过评论进行控制
……执行任务
……添加至 White list
……重新执行任务
……变更指定评论
8.7 小结
9 使用GitHub的开发流程
9.1 团队使用 GitHub 时的注意事项
一切从简
……项目管理工具与 GitHub 的区别
……项目管理工具与 GitHub 相异的原因
不 Fork 仓库的方法
9.2 GitHub Flow——以部署为中心的开发模式
9.3 GitHub Flow 的流程
随时部署,没有发布的概念
进行新的作业时要从 master 分支创建新分支
在新创建的分支中进行提交
定期 push
使用 Pull Request
务必让其他开发者进行审查
合并后立刻部署
9.4 实践 GitHub Flow 的前提条件
部署作业完全自动化
……使用部署工具
……通过 Web 界面进行部署的工具
……导入开发时的注意事项
重视测试
……让测试自动化
……编写测试代码,通过全部测试
……维护测试代码
9.5 模拟体验 GitHub Flow
Fizzbuzz 的说明
添加新功能
创建新的分支
……如果尚未 clone 仓库
……如果之前 clone 过仓库
……创建特性分支
实现新功能
创建 Pull Request
接收反馈
修正缩进
添加测试
培育 Pull Request
Pull Request 被合并
9.6 团队实践 GitHub Flow 时的几点建议
减小 Pull Request 的体积
准备可供试运行的环境
不要让 Pull Request 中有太多反馈
不要积攒 Pull Request
9.7 GitHub Flow 的小结
9.8 Git Flow——以发布为中心的开发模式
便于理解的标准流程
有时显得过于复杂
9.9 导入 Git Flow 前的准备
安装 git-flow
……Mac 下的安装
……Linux 下的安装
……确认运行状况
仓库的初始设置
……创建仓库
……进行 git flow 的初始设置
……在远程仓库中也创建 develop 分支
9.10 模拟体验 Git Flow
master 分支与 develop 分支的区别
……master 分支
……develop 分支
在 feature 中进行的工作
……创建分支
……在分支中进行作业
发送 Pull Request
通过代码审查提高代码质量
更新本地的 develop 分支
在 release 分支中进行的工作
……创建分支
……分支内的工作
……进行发布与合并
……查看版本标签
更新到远程仓库
在 hotfix 分支中进行的工作
……创建分支
……创建标签和进行发布
……从 hotfix 分支合并至 develop 分支
9.11 Git Flow 的小结
10 将GitHub应用到企业
10.1 将世界标准的开发环境引入企业现场
企业引入 GitHub 的好处
使用 Organization
确认 Github 的安全性
注意维护时间
查看故障信息
10.2 GitHub Enterprise
概述
引入的好处
引入的弊端
适合引入 GitHub Enterprise 的几种情况
……源代码不可外传
……希望维护与故障时间可控
10.3 能实现 Git 托管的软件
10.4 小结
附录 A 支持GitHub的GUI客户端
A.1 GitHub for Mac,GitHub for Windows
A.2 SourceTree
附录 B 通过Gist轻松实现代码共享
B.1 Gist 的特点
B.2 创建 Gist
UI 讲解
……1 Gist description...
……2 name this file...
……3 language
……4 ACE Editor
……5文件
……6 Add another File
……7 Create Secret Gist
……8 Create Public Gist
B.3 查看 Gist
Gist 的菜单
……1 Gist Detail
……2 Revisions
……3 Download Gist
……4 Clone this gist
……5 Embed this gist
……6 Link to this gist
文件的菜单
B.4 Your Gists
B.5 小结
看完了
思维导图
防止博客图床图片失效,防止图片源站外链:
http://www.processon.com/chart_image/5e5b2ab1e4b0d4dc8776c0a1.png)
思维导图在线编辑链接: