《GitHub入门与实践》读书笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《GitHub入门与实践》读书笔记相关的知识,希望对你有一定的参考价值。


已经工作两年半,工作一开始就开始使用git,日常开发基本无压力,偶尔遇到提交冲突,Google一下也可以解决问题。鉴于查漏补缺的读书需求,还是快速但细致地看一遍本书,写下以下读书笔记。
记录的都是一些很琐碎,尤其是之前不知道的知识点。

概念:

octocat:章鱼猫。
群件Groupware,​​​百科​​​ GFM语法,GitHub Flavored Markdown,并不是最官方的markdown,略有出入。
TiDD(Ticket-driven Development)

命令

提高命令输出的可读性,将 color.ui 设置为 auto 可以让命令的输出拥有更高的可
读性。
​​​$ git config --global color.ui auto​​ “~/.gitconfig”中会增加下面一行。

[color]
ui = auto

只想让程序显示第一行简述信息
​​​git log --pretty=short​

以图表形式查看分支
​​​git log --graph​

修改上一条提交信息:
​​​git commit --amend​

可以在推送的同时,将 origin 仓库的 master 分支设置为本地仓库当前分支的 upstream(上游)
​​​git push -u​

切换到之前的分支, 类似于​​cd -​​​:
​​​git checkout -​

在合并特性分支之前,如果发现已提交的内容中有些许拼写错误等,不妨提交一个修改,然后将这个修改包含到前一个提交之中,压缩成一个历史记录。更改历史。将 " Fix typo"修正的内容与之前一次的提交合并,在历史记录中合并为一次完美的提交。
​​​git rebase -i HEAD~2​

小变没必要先执行 git add命令再执行 git commit命令,用 git commit -am 命令来一次完成这两步操作。

–no-ff参数可以在历史记录中明确记录下本次分支合并:
​​​git merge --no-ff feature1​​ git log 命令只能查看以当前状态为终点的历史日志。 git reflog 命令可以查看当前仓库的操作日志。只要不进行 Git 的 GC(Garbage Collection,垃圾回收),就可以通过日志随意调取近期的历史状态。

UI界面使用

可以借助于GitHub Pages的Octopress 框架来搭建博客;
GitHub Pages的默认branch 是 gh-pages,带来的一个问题就是 master 分支的变更,经常需要去sync到gh-pages。解决方法:通过 setting 设置GitHub Pages模块可以自动创建该项目的网站,选择完master branch之后,master自动变成网站。master所有的提交会自动更新到网站。
在各个页面按下 ​​​shift + /​​​ 都可以打开键盘快捷键一览表;
在仓库页面试着按下键盘的 t 键,然后输入要找的目录或文件的部分名称。

Raw 可以直接在浏览器中显示该文件的内容。
使用这个 URL,就能通过 HTTPS 协议获取该文件。​​​#L10-15​​,则会标记该文件的第10~ 15 行

GitHub对RESTful API的支持非常好。
查看 4-0-stable 分支与 3-2-stable 分支之间的差别:
​​​https://github.com/rails/rails/compare/4-0-stable...3-2-stable​

查看 master 分支在最近 7 天内的差别:
​​​https://github.com/rails/rails/compare/master@7.day.ago...master​​ 支持的时间类型:day、week、month、year

查看 master 分支 2013 年 1 月 1 日与现在的区别,
​​​https://github.com/rails/rails/compare/master@2013-01-01...master​

Code Frequency 中显示仓库中代码行数的增加量和删除量;一个代码组织良好的仓库,必定是增加量略大于删除量,因为会删除无用代码,进行重构;

管理 Issue 的系统称为 BTS(Bug Tracking System, BUG 跟踪系统)。当今具有代表性的 BTS 有 Redmine、Trac、Bugzilla等。

Tasklist 语法 A。

本月要做的任务



​#编号​​​,会连接到该仓库所对应的 Issue 编号;
git commit -m 提交信息包含以下三个单词的任意一种状态(现在时,单三,过去分词形式):
fix、close、resolve即可将关联的issue close掉。
​​​fix #12​

GitHub Flow——以部署为中心的开发模式;流程:令 master 分支时常保持可以部署的状态,随时部署,随时自动化测试,也就没有发布的概念;

不进行 Fork 直接从分支发送 Pull Request:一般说来,在 GitHub 上修改对方的代码时,需要先将仓库 Fork 到本地,然后再修改代码,发送 Pull Request。但是,如果用户对该仓库有编辑权限,则可以直接创建分支,从分支发送 Pull Request。

将特定的 Issue 转换为 Pull Request,以issue Id编号标志;
pr的地址URL类似这样:
​​​https://github.com/用户名/仓库名/pull/28​​​ 以diff 或者patch文件的形式查看pr:
​https://github.com/用户名/仓库名/pull/28.diff​​​​https://github.com/用户名/仓库名/pull/28.patch​

选中想引用的评论然后按 R 键;
在评论中输入":"(冒号)便会启动表情自动补全功能。

Files Changed 标签页中可以查看当前 Pull Request 更改的文件内容以及前后差别。默认情况下系统会将空格的不同也高亮显示,所以在空格有改动的情况下会难以阅读,在 URL 的末尾添加"?w=1"就可以不显示空格的差别。

github不仅支持文本文件的diff查看,也支持图片文件的查看;
可以通过提交日志的 Image View Mode Demo 来体验操作。
2-up 可以同时显示一张旧图片和一张新图片,从而完成对比;
Swipe 可以在分界线左右两侧分别显示旧图片和新图片;
Onion Skin 能够将新旧两张图片重叠放置,分阶段从旧图片慢慢过渡至新图片,用户可以自由调节过渡比例;
Difference 能够直接抽出两张图片不一样的部分进行比较。

工具

hub,基于Git,完全兼容git,封装git的命令行,辅助用户使用GitHub;安装过程略;
Mac两款命令行安装工具:Homebrew、MacPorts;
使用 hub 命令的最佳实践就是将相应 git 设置成 hub 的别名,hub 命令可以完成 git 命令的所有操作,不会影响 git 命令原本的功能。
Travis CI,类似于jenkins;Travis CI 专门提供 Travis WebLint 用于检测 ​​​.travis.yml​​ 文件是否存在问题;

[![Build Status](https://secure.travis-ci.org/用户名/仓库名.png
)](http://travis-ci.org/用户名/仓库名)

Coveralls,代码覆盖率检测服务,配置文件是​​.coveralls.yml​​​;
Gemnasium 服务可以查询 GitHub 仓库中软件正在使用的 RubyGems 或 npm(Node Package Manager,包管理器),让开发者了解自己是否正在使用最新版本进行开发;

Capistrano,部署工具;

账户管理可以与 LDAP/CAS 集成;
实际上Subversion 也可以使用 GitHub,即可以将 GitHub的仓库作为 Subversion仓库使用:
​​​svn checkout https://github.com/ 用户名 / 仓库名​​ GitHub的备选项:GitBucket、GitLab、Gitorious、RhodeCode

Gist使用javascript 编写的 Ace 编辑器。


以上是关于《GitHub入门与实践》读书笔记的主要内容,如果未能解决你的问题,请参考以下文章

GitHub入门与实践 学习笔记

《Docker技术入门与实战》读书笔记与实践

JavaScript 设计模式与开发实践读书笔记 http://www.open-open.com/lib/view/open1469154727495.html

python编程:从入门到实践读书笔记

一文入门推荐系统——推荐系统实践读书笔记

JavaScript设计模式与开发实践---读书笔记