GotGitHub 是 GitHub 的详细完整的权威介绍。
这是一本关于GitHub的书,在线阅读请访问: http://www.worldhello.net/gotgithub 。
动笔写GitHub不是因为我对其了解,恰恰是对其太不了解。在我写的 《Git权威指南》 一书中,涉及到GitHub的只有区区三页纸,这显然回答不了读者对于GitHub的诸多疑问。
这本书采用Creative Commons协议发布,并托管在GitHub上,意味着您可以免费阅读并可以用GitHub特有的方式参与本书的维护。
项目 gotgit/gotgithub 的版本库中的 gh-pages 分支保存着本书编译后的页面,意味着您只要下载版本库并检出 gh-pages 分支即可在本地浏览。
gh-pages
克隆版本库。
$ git clone git://github.com/gotgit/gotgithub.git
检出 gh-pages 分支。
$ cd gotgithub
$ git checkout gh-pages
用浏览器打开 index.html 即可离线阅读。
index.html
因分支 gh-pages 的提交历史可能会周期性删除或压缩合并,为避免执行 git pull 更新分支时造成困惑,请对本地版本库进行如下设置。
git pull
$ git config --add remote.origin.fetch +refs/heads/gh-pages:refs/heads/gh-pages
本书使用 reStructuredText 格式撰写,格式解析依赖 Python 和 docutils 包。
用 Sphinx 工具进行编译。编译前先确认已经安装 Python、docutils 及 sphinx。
本书图片矢量图采用 Inkscape 绘制,位图处理采用 GIMP 。上述格式图片在网页显示需要格式转换,格式转换需用到 ImageMagick 和 Inkscape。
不解释。
本书用两个版本库维护:
https://github.com/gotgit/gotgithub/
https://github.com/gotgit/gotgithub-graphics/
本书的图片版本库以子模组形式关联到书稿版本库,运行下面命令执行克隆:
若尚未克隆书稿版本库,先克隆书稿版本库。
默认检出 master 分支。如果当前非 master 分支,执行下面命令检出分支。
master
$ git checkout master
通过子模组更新命令克隆子模组版本库(即保存图片的版本库)并检出。
$ git submodule init $ git submodule update
确保安装了 Sphinx、ImageMagick、Inkscape。编译本书使用命令:
$ make html
编译后的网页位于 _build/html 目录下。
_build/html
更多的格式输出参见下面的命令输出:
$ make
请采用GitHub方式贡献。
创建派生项目。即 Fork。
修改您觉得不满意的地方。修改后推送到您创建的分支版本库中。
通过 GitHub 向我发送 Pull Request。
-- 蒋鑫, http://weibo.com/gotgit/
1. 探索GitHub
1.1. 什么是GitHub
1.2. GitHub亮点
1.3. 探索GitHub
2. 加入GitHub
2.1. 创建GitHub账号
2.2. 浏览托管项目
2.3. 社交网络
3. 项目托管
3.5.1. 创建个人主页
3.5.2. 创建项目主页
3.5.3. 使用专有域名
3.5.4. 使用Jekyll维护网站
3.4.1. 邮件通知功能
3.4.2. 和Redmine整合
3.3.1. 用户级公钥管理
3.3.2. 项目级公钥管理
3.2.1. 强制推送
3.2.2. 新建分支
3.2.3. 设置默认分支
3.2.4. 删除分支
3.2.5. 里程碑管理
3.1.1. 新版本库即是新项目
3.1.2. 版本库初始化
3.1.3. 从已有版本库创建
3.1. 创建新项目
3.2. 操作版本库
3.3. 公钥认证管理
3.4. 版本库钩子扩展
3.5. 建立主页
4. 工作协同
4.6.1. 维基初始化
4.6.2. 使用维基
4.6.3. 维基与Git
4.5.1. 标签
4.5.2. 里程碑
4.5.3. Issue的生命周期
4.5.4. Pull Requst也是Issue
4.4.1. 提交评注
4.4.2. 逐行评注
4.3.1. 创建新组织
4.3.2. 组织管理
4.3.3. 版本库管理
4.3.4. 个人还是组织
4.2.1. 版本库授权
4.2.2. 与传统集中式工作模式的异同
4.2.3. 合并后推送
4.2.4. 合并还是变基
4.1.1. 版本库派生
4.1.2. Pull Request
4.1.3. 手工合并
4.1.4. 在线编辑
4.1.5. 简化的 Fork + Pull Request
4.1. Fork + Pull模式
4.2. 共享版本库
4.3. 组织和团队
4.4. 代码评注
4.5. 缺陷跟踪
4.6. 维基
5. 付费服务
5.1. GitHub收费方案
5.2. GitHub企业版
6. GitHub副产品
6.4.1. GitHub:Jobs
6.4.2. GitHub:Shop
6.4.3. GitHub短网址服务
6.4.4. GitHub Open Source
6.3.1. github:mac
6.3.2. hub
6.3.3. iOS应用
6.2.1. 用SVN操作GitHub
6.2.2. 用Hg操作GitHub
6.1.1. 数据的粘贴和引用
6.1.2. Gist背后的Git库
6.1.3. Greasemonkey
6.1.4. 命令行操作Gist
6.1. GitHub:Gist
6.2. 其他版本控制工具支持
6.3. 客户端工具
6.4. 其他
7. 附录:轻量级标记语言