• GitHub 集成
    • 使用 GitHub 上的项目
    • 创建 GitHub 项目
    • 导入代码
    • 更新书籍

    GitHub 集成

    GitBook.com 为每本书籍都创建了一个 Git 项目,并且使用这个 Git 项目来管理书籍源码(注意:这里的源码是指所有用户提交的内容)。正如在 编辑书籍 中介绍的那样,我们可以通过向书籍的 Git 项目提交内容来更新书籍。

    另外,GitBook.com 还可以集成 GitHub,所以用户可以将书籍的源码通过 GitHub 上的项目来管理,这样可以使用 GitHub 带来的各种优点,例如:

    • 其它用户可以 fork
    • 用户可以点赞,获得更新提醒
    • 用户可以贡献自己的内容

    等等。

    这里,接着之前的实例,将使用 GitHub 中的项目来替代 GitBook.com 上的项目 https://git.gitbook.com/chengweiv5/test.git

    使用 GitHub 上的项目

    首先,将书籍的 Git 项目设置为 GitHub 上的项目,进入书籍属性页面,找到 “GitHub” 图标,如下图:

    book github

    输入将要使用的 GitHub 上的项目,注意是公开的项目,如下图:

    new github tree

    保存后,可以看到之前不可点击的 “Add a deployment webhook” 按钮已经可以点击了,这个按钮表示:每当用户配置的 GitHub 上的项目更新时,自动更新书籍!

    github webhook

    创建 GitHub 项目

    假设上面配置的 GitHub 中的项目并不存在,那么,首先,登陆 GitHub,然后创建一个 test 项目,如下图所示:

    create github project

    导入代码

    现在,将书籍原来的 Git 项目内容导入到新建的 GitHub 中的项目中,假设已经将 https://git.gitbook.com/chengweiv5/test.git 项目克隆到了 test 目录:

    1. $ cd test
    2. $ git remote add github https://github.com/chengweiv5/test.git
    3. $ git push -u github master
    4. Counting objects: 31, done.
    5. Delta compression using up to 4 threads.
    6. Compressing objects: 100% (26/26), done.
    7. Writing objects: 100% (31/31), 6.58 KiB | 0 bytes/s, done.
    8. Total 31 (delta 7), reused 0 (delta 0)
    9. To https://github.com/chengweiv5/test.git
    10. * [new branch] master -> master
    11. Branch master set up to track remote branch master from github.

    git push 命令中的 -u 表示将本地 master 分支的上游分支设置为 github/master,所以以后修改了本地 master 分支后,git push 将推送到 github 上,而非原来的 https://git.gitbook.com/chengweiv5/test.git

    更新书籍

    现在,可以通过提交变更到 GitHub 项目中来更新书籍了,例如:

    1. $ git diff
    2. diff --git a/README.md b/README.md
    3. index e7b10b8..c776a52 100644
    4. --- a/README.md
    5. +++ b/README.md
    6. @@ -2,3 +2,5 @@ GitBook Example
    7. =======
    8. Welcome in your GitBook!
    9. +
    10. +Hello from GitHub!
    11. $ git commit -asm "hello from github"
    12. [master d985a79] hello from github
    13. 1 file changed, 2 insertions(+)
    14. $ git push
    15. Counting objects: 3, done.
    16. Delta compression using up to 4 threads.
    17. Compressing objects: 100% (3/3), done.
    18. Writing objects: 100% (3/3), 392 bytes | 0 bytes/s, done.
    19. Total 3 (delta 0), reused 0 (delta 0)
    20. To https://github.com/chengweiv5/test.git
    21. b6a8b3f..d985a79 master -> master

    hello from github