# Github 参考资料 GitHub入门与实践 ## github 创建个人主页 每个用户下只能有一个 [username].github.io 的仓库 发布在该仓库的 master 分支的内容即个人静态网页, 可通过 [username].github.io 访问。我们可创建 source 分支保存我们网站的原始文件,这样本地数据丢失时还能找回。 常见做博客框架有 Jekyll 、 Octopress 、Hexo。其中 Octopress 是基于 Jekyll 的,我本科时候使用过 Octopress,现在使用 Hexo ,Hexo 相对前两个生成速度快。如果使用 Jekyll 有个最大的好处就是每个仓库的 Wiki 页面就是通过它来生成的,这样搞定一个就通用了。 具体三种框架的本地配置网上教程很多。 ---- ## 创建仓库 首先先上网站点击新建一个仓库,例如我要新建一个名为“test”的仓库,输入仓库名字,点击创建即可创建,然后就进入快速设置引导界面。如果你选择了 **Initialize this repository with a README**、**Add .gitignore**、**Add a license**,则会在仓库中生成相应的 README 、.gitignore 、 LICENSE 文件,跳过快速指导页面直接进入项目。如果选了以上,第一次上传之前还需要 pull 一下。 创建项目之后会进入一个快速设置指导页面。上面提示 HTTPS、SSH 两种方式可以上传、下载。如下所示。 ```bash # HTTPS https://github.com/wuhongyi/test.git # SSH git@github.com:wuhongyi/test.git ``` 如果说本地本人使用两个没什么差别,SSH 可能还方便点。但是如果远程电脑或者公共服务器账户上还是HTTPS好,远程SSH输入密码框无法显示,意味着没法上传。SSH可以配置免密上传,公共服务器上还会泄漏账户信息或者被人误操作。综合以上我都改用HTTPS方式上传。 本地对应仓库的创建: 终端指向该文件夹执行以下命令初始化仓库(每个仓库只需要一次) ```bash #初始化 该目录下将生成. git 文件夹 git init #设置远程仓库地址 第一个为 HTTPS 第二个为 SSH,两个选一个即可。 #设置完之后该信息将被写入到 .git/config 文件中,可修改该文件切换上传方式 git remote add origin https://github.com/wuhongyi/test.git git remote add origin git@github.com:wuhongyi/test.git ``` 仓库内容的修改和发布: ```bash git add [XXX] #添加文件到暂存区 git commit -m "commit message" #提交修改 git push -u origin master #上传到网站 ``` 项目下创建文件 .gitignore 在里面添加需要忽略的文件夹及文件 ```text /projectNCURSES/build/ /projectROOT/build/ /SimulationPMT/build/ /projectG4/build/ /projectWU/build/ /projectWU/bin/ /projectG4MT/build/ /projectG4MTNeutron/build/ /projectG4MTPhoton/build/ /GammaSpectroscopy/build/ /GammaSpectroscopy/source/build/ /projectG4Visualization/build/ *.root *.m4b *.mca *.spe /G4_lib/ /lib/ Authorize/Log/ ``` 其中目录以 “/” 开头的位绝对路径,如前几个。不以 “/” 开头的将会忽略整个仓库中该名字的文件夹,例如最后一个。文件也同理,不指定目录将忽略所有匹配的文件。 ## 仓库的Wiki 每个仓库的对应 Wiki 我还没使用过,所以不清楚怎么制作。 应该在该项目创建一个 doc 文件夹 ## github 到 gitbook 电子书发布 GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书。 GitBook支持输出多种文档格式: - 静态站点:GitBook默认输出该种格式,生成的静态站点可直接托管搭载Github Pages服务上; - PDF:需要安装gitbook-pdf依赖; - eBook:需要安装ebook-convert; - 单HTML网页:支持将内容输出为单页的HTML,不过一般用在将电子书格式转换为PDF或eBook的中间过程; - JSON:一般用于电子书的调试或元数据提取。 我的示范: https://wuhongyi.gitbooks.io/ **我将逐渐把笔记转成该形式**