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

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

概念:

octocat
群件Groupware
GitHub Flavored Markdown(GFM)语法
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。
在各个页面按下 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。

本月要做的任务
  • [ ] 完成图片
  • [x] 完成部署工具的设置
  • [ ] 实现抽签功能

#编号,会连接到该仓库所对应的 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技巧:

1. 在线编辑代码

这里写图片描述
如图,在线编辑,编辑完成之后点击 Propose file change 按钮 GitHub 将会自动帮你 fork 该项目并且创建一个 pull request。非常适合修复编写代码中出现的拼写错误和修正一个不太理想的想法。

2.

猜你喜欢

转载自blog.csdn.net/lonelymanontheway/article/details/81487224